openquell/game/welcome_scene.go

63 lines
1.3 KiB
Go

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)
}