46 lines
881 B
Go
46 lines
881 B
Go
package screens
|
|
|
|
import (
|
|
"image/color"
|
|
"mover/fonts"
|
|
"mover/gamedata"
|
|
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
|
"github.com/hajimehoshi/ebiten/v2/text"
|
|
)
|
|
|
|
type StartScreen struct {
|
|
eHandler map[ScreenManagerEvent]func()
|
|
dimensions gamedata.Area
|
|
}
|
|
|
|
func NewStartScreen() *StartScreen {
|
|
s := &StartScreen{
|
|
eHandler: make(map[ScreenManagerEvent]func()),
|
|
}
|
|
return s
|
|
}
|
|
|
|
func (s *StartScreen) Update() error {
|
|
|
|
if inpututil.IsKeyJustPressed(ebiten.KeyEnter) {
|
|
s.eHandler[EventCompleted]()
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (s *StartScreen) Draw(screen *ebiten.Image) {
|
|
screen.Clear()
|
|
text.Draw(screen, "survive", fonts.SurviveFont.ArcadeLarge, 40, 80, color.White)
|
|
}
|
|
|
|
func (s *StartScreen) SetEventHandler(e ScreenManagerEvent, f func()) {
|
|
s.eHandler[e] = f
|
|
}
|
|
|
|
func (s *StartScreen) SetDimensions(a gamedata.Area) {
|
|
s.dimensions = a
|
|
}
|