package coreobjects import ( rl "github.com/gen2brain/raylib-go/raylib" ) type SceneManager struct { OverlayScene Scene SelectedScene Scene balancer *balancer } func InitSceneManager() SceneManager { return SceneManager{ OverlayScene: &OveralyScene{}, SelectedScene: nil, balancer: makeBalancer(), } } 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() } base.balancer.Execute(base.SelectedScene.GetUpdateFunctions()) 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() } }