package splashmenu import ( "image/color" "log" "github.com/hajimehoshi/ebiten/v2" "github.com/hajimehoshi/ebiten/v2/examples/resources/fonts" "github.com/hajimehoshi/ebiten/v2/inpututil" "github.com/hajimehoshi/ebiten/v2/text" "golang.org/x/image/font" "golang.org/x/image/font/opentype" ) var ( menuFont font.Face ) func init() { tt, err := opentype.Parse(fonts.PressStart2P_ttf) if err != nil { log.Fatal(err) } const dpi = 72 menuFont, err = opentype.NewFace(tt, &opentype.FaceOptions{ Size: 12, DPI: dpi, Hinting: font.HintingVertical, }) if err != nil { log.Fatal(err) } } type Menu struct { bgcolor color.RGBA completed bool } func NewMenu() Menu { return Menu{ bgcolor: color.RGBA{0x33, 0x33, 0x99, 0xFF}, completed: false, } } func (m *Menu) Draw(screen *ebiten.Image) { screen.Fill(m.bgcolor) text.Draw(screen, "menu", menuFont, 40, 40, color.White) } func (m *Menu) Update() error { var keysPressed []ebiten.Key keysPressed = inpututil.AppendPressedKeys(keysPressed[:0]) for _, k := range keysPressed { if k == ebiten.KeyEnter { m.completed = true } } return nil } func (m *Menu) Completed() bool { return m.completed }