reorganized source, added test cases for tuning

This commit is contained in:
2024-06-05 16:33:35 +02:00
parent 50fab6e1a5
commit 162d141b34
33 changed files with 811 additions and 97 deletions

27
src/scene.go Normal file
View File

@@ -0,0 +1,27 @@
package main
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
)