gameLibTests/Pixel/VN/main.go

74 lines
1.3 KiB
Go

package main
import (
"os"
"io/ioutil"
"log"
"github.com/faiface/pixel"
"github.com/faiface/pixel/pixelgl"
"github.com/faiface/pixel/text"
"github.com/golang/freetype/truetype"
"golang.org/x/image/font"
)
func check (err error) {
if err != nil {
log.Fatal(err)
}
}
func loadTTF(path string, size float64) (font.Face, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
bytes, err := ioutil.ReadAll(file)
if err != nil {
return nil, err
}
font, err := truetype.Parse(bytes)
if err != nil {
return nil, err
}
return truetype.NewFace(font, &truetype.Options{
Size: size,
GlyphCacheEntries: 1,
}), nil
}
func run() {
cfg := pixelgl.WindowConfig{
Title: "Visual novel test",
Bounds: pixel.R(0, 0, 640, 480),
VSync: true,
}
win, err := pixelgl.NewWindow(cfg)
win.SetSmooth(true)
face, err := loadTTF("../../Resources/mplus-1p-regular.ttf", 80)
check(err)
atlas := text.NewAtlas(face, text.ASCII)
txt := text.New(pixel.V(50, 500), atlas)
check(err)
for !win.Closed() {
txt.WriteString(win.Typed())
if win.JustPressed(pixelgl.KeyEnter) {
txt.WriteRune('\n')
}
txt.Draw(win, pixel.IM.Moved(win.Bounds().Center().Sub(txt.Bounds().Center())))
win.Update()
}
}
func main() {
pixelgl.Run(run)
}