63 lines
1.3 KiB
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)
|
|
|
|
}
|