package coreobjects import rl "github.com/gen2brain/raylib-go/raylib" type SceneManager struct { OverlayScene Scene SelectedScene Scene } type Scene interface { Create(*SceneManager) Destroy() Update() Draw() GetMousePosition() rl.Vector2 } func InitSceneManager() SceneManager { return SceneManager{ OverlayScene: &OveralyScene{}, SelectedScene: nil, } } func (base *SceneManager) ChangeScene(newScene Scene) { if base.SelectedScene != nil { base.SelectedScene.Destroy() } base.SelectedScene = newScene base.SelectedScene.Create(base) } func (base *SceneManager) Update() { if (base.SelectedScene != nil) { base.SelectedScene.Update() } if (base.OverlayScene != nil) { base.OverlayScene.Update() } if rl.IsKeyDown(rl.KeyF11) { rl.ToggleFullscreen() } } func (base *SceneManager) Draw() { if (base.SelectedScene != nil) { base.SelectedScene.Draw() } if (base.OverlayScene != nil) { base.OverlayScene.Draw() } }