Implemented scene events and callback handlers for those events. Manager defaults also added.

This commit is contained in:
2023-08-23 01:24:43 -04:00
parent f2b3f371c4
commit 5da470937e
6 changed files with 179 additions and 59 deletions

View File

@@ -2,8 +2,23 @@ package groovy
import "github.com/hajimehoshi/ebiten/v2"
type SceneEvent int64
const (
NOOP SceneEvent = 0
RESET SceneEvent = 1 // reset to initial scene
RELOAD SceneEvent = 3 // reload current scene
COMPLETED SceneEvent = 4 // current scene has completed
ENDGAME SceneEvent = 5 // shutdown all scenes
)
type Scene interface {
Update() error
Draw(screen *ebiten.Image)
Completed() bool
SetEventHandler(e SceneEvent, f func())
}
type ArgoScale interface {
Draw(screen *ebiten.Image)
GetSceneEvents() []SceneEvent
}