package game import ( "image/color" "log/slog" "openquell/assets" "github.com/hajimehoshi/ebiten/v2" "github.com/tinne26/etxt" ) type WelcomeScene struct { Game *Game Next SceneName Whoami SceneName UseCache bool } func NewWelcomeScene(game *Game) Scene { scene := &WelcomeScene{Whoami: Welcome, Game: game, Next: Welcome} return scene } func (scene *WelcomeScene) SetNext(next SceneName) { scene.Next = next } func (scene *WelcomeScene) GetNext() SceneName { return scene.Next } func (scene *WelcomeScene) Update() error { switch { case ebiten.IsKeyPressed(ebiten.KeyEnter): slog.Debug("welcome.Update() next") scene.SetNext(Select) } return nil } func (scene *WelcomeScene) Draw(screen *ebiten.Image) { screen.Clear() op := &ebiten.DrawImageOptions{} background := assets.Assets["background-lila"] screen.DrawImage(background, op) blue := color.RGBA{0, 255, 128, 255} assets.FontRenderer.Renderer.SetTarget(screen) assets.FontRenderer.Renderer.SetColor(blue) assets.FontRenderer.Renderer.SetAlign(etxt.YCenter, etxt.XCenter) assets.FontRenderer.Renderer.SetSizePx(45) assets.FontRenderer.Renderer.Draw("Welcome to Open Quell!", 320, 200) assets.FontRenderer.Renderer.SetAlign(etxt.Top, etxt.Left) assets.FontRenderer.Renderer.SetSizePx(32) assets.FontRenderer.Renderer.Draw("[press enter to start]", 100, 300) }