Files
golsky/cmd/scene.go

29 lines
673 B
Go
Raw Permalink Normal View History

2025-11-13 21:30:44 +01:00
package cmd
import "github.com/hajimehoshi/ebiten/v2"
// Wrapper for different screens to be shown, as Welcome, Options,
// About, Menu Level and of course the actual game
// Scenes are responsible for screen clearing! That way a scene is able
// to render its content onto the running level, e.g. the options scene
// etc.
type SceneName int
type Scene interface {
SetNext(SceneName)
GetNext() SceneName
SetPrevious(SceneName)
ResetNext()
Update() error
Draw(screen *ebiten.Image)
IsPrimary() bool // if true, this scene will be always drawn
}
const (
Menu = iota // main top level menu
Play // actual playing happens here
Options
Keybindings
)