openquell/game/scene.go
Thomas von Dein f696660ccd lotsa fixes:
- fixed obstacle collision and death on obstacle spike
- moved player move into separate loop after other collision checks
  are done
- fixed level setup, generation and selection
- added test levels for obstacles
2024-02-21 12:50:17 +01:00

34 lines
847 B
Go

package game
import (
"github.com/hajimehoshi/ebiten/v2"
)
const (
Welcome = iota // startup
Menu // main top level menu
Play // actual playing happens here
About // about the game
Settings // options
Popup // in-game options
Select // select which level to play
Nextlevel // displayed after loose or win
)
// Wrapper for different screens to be shown, as Welcome, Options,
// About, Menu Level and of course the actual Levels.
// 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 Scene interface {
SetNext(SceneName)
GetNext() SceneName
ResetNext()
Clearscreen() bool
Update() error
SetLevel(int)
Draw(screen *ebiten.Image)
}
type SceneName int