Brought in screen manager, minor refactor.

This commit is contained in:
2024-11-11 09:54:30 -05:00
parent 9130155999
commit 6f794b7bb2
21 changed files with 373 additions and 170 deletions

25
screens/scene.go Normal file
View File

@@ -0,0 +1,25 @@
package screens
import (
"mover/gamedata"
"github.com/hajimehoshi/ebiten/v2"
)
type ScreenManagerEvent int
const (
EventNoop ScreenManagerEvent = iota
EventReset // reset to initial scene
EventLoad // loading elements
EventReload // reload current scene
EventCompleted // current scene has completed
EventEndgame // shutdown all scenes
)
type Screen interface {
Update() error
Draw(screen *ebiten.Image)
SetEventHandler(e ScreenManagerEvent, f func())
SetDimensions(a gamedata.Area)
}