add 07 guide code
This commit is contained in:
parent
3e4b1b8ebd
commit
be077d6e60
Binary file not shown.
|
@ -0,0 +1,78 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/faiface/pixel"
|
||||||
|
"github.com/faiface/pixel/pixelgl"
|
||||||
|
"github.com/faiface/pixel/text"
|
||||||
|
"github.com/golang/freetype/truetype"
|
||||||
|
"golang.org/x/image/colornames"
|
||||||
|
"golang.org/x/image/font"
|
||||||
|
)
|
||||||
|
|
||||||
|
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: "Pixel Rocks!",
|
||||||
|
Bounds: pixel.R(0, 0, 1024, 768),
|
||||||
|
}
|
||||||
|
win, err := pixelgl.NewWindow(cfg)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
win.SetSmooth(true)
|
||||||
|
|
||||||
|
face, err := loadTTF("intuitive.ttf", 80)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
atlas := text.NewAtlas(face, text.ASCII)
|
||||||
|
txt := text.New(pixel.V(50, 500), atlas)
|
||||||
|
|
||||||
|
txt.Color = colornames.Lightgrey
|
||||||
|
|
||||||
|
fps := time.Tick(time.Second / 120)
|
||||||
|
|
||||||
|
for !win.Closed() {
|
||||||
|
txt.WriteString(win.Typed())
|
||||||
|
if win.JustPressed(pixelgl.KeyEnter) || win.Repeated(pixelgl.KeyEnter) {
|
||||||
|
txt.WriteRune('\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
win.Clear(colornames.Darkcyan)
|
||||||
|
txt.Draw(win, pixel.IM.Moved(win.Bounds().Center().Sub(txt.Bounds().Center())))
|
||||||
|
win.Update()
|
||||||
|
|
||||||
|
<-fps
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
pixelgl.Run(run)
|
||||||
|
}
|
Loading…
Reference in New Issue