반응형
요즘 Go의 Ebiten을 조금씩 보고 있다.
아직 Go 언어가 익숙하지는 않지만 조금씩 기능을 추가해가면서 공부해보려고 한다.
일단 가장 기본적인 기능으로 텍스트 출력을 해보고 싶었다. (FPS 출력;;)
그래서 무료 라이센스의 TTF 파일을 우선 찾았고 이 파일을 어떻게 사용할까 찾아보았다.
ebiten에서 텍스트를 사용하는 기능은 지원하고 있어서 TTF를 읽어서 font.Face를 만들어내기만 하면 되었다.
TTF를 읽기 위해서 freetype 패키지를 설치하였다.
go get github.com/golang/freetype
그리고 아래와 같이 파일 경로를 통해서 파일을 읽고 해당 파일을 바이트로 변경하고 truetype으로 파싱해서 font.Face를 생성하는 함수를 만들었다. 나는 utils 패키지를 만들어서 ttfLoader.go 파일로 빼놓았다.
func Load_TTF(fontPath string) font.Face {
f, err := ebitenutil.OpenFile(fontPath)
if err != nil {
log.Fatal(err)
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
log.Fatal(err)
}
tt, err := truetype.Parse(b)
if err != nil {
log.Fatal(err)
}
const dpi = 72
return truetype.NewFace(tt, &truetype.Options{
Size: 24,
DPI: dpi,
Hinting: font.HintingFull,
})
}
update 함수에서 ebiten.CurrentFPS() 를 이용하여 현재 FPS를 얻어내 문자열을 만들었고
draw 함수에서 text.Draw()로 텍스트를 출력해보았다.
이렇게 조금 조금씩 코드를 추가해나가면서 간단한 게임 엔진을 만들어보려고 하는데
간단히 정리할 수 있는 내용이 있다면 블로그에 올리도록 하겠다.
반응형
'프로그래밍 > Go' 카테고리의 다른 글
Go - Asesprite json 파일 읽기 (0) | 2022.05.01 |
---|---|
Go 언어 환경설정 간단 정리(IDE - VS Code) (0) | 2022.03.19 |