package coreobjects import ( "fmt" settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" rl "github.com/gen2brain/raylib-go/raylib" ) type OveralyScene struct { FPS FpsMeter } func (base *OveralyScene) Create(_ SceneManager) { } func (base *OveralyScene) Destroy() { } func (base *OveralyScene) GetMousePosition() rl.Vector2 { return rl.GetMousePosition() } func (base *OveralyScene) Update() { base.FPS.Update() if rl.IsKeyPressed(rl.KeyF7) { settings.State.DrawColliders = !settings.State.DrawColliders } } func (base *OveralyScene) Draw() { var appendix = "" if settings.Current.Version.IsBeta { appendix = " b" } var version = fmt.Sprintf("%d.%d.%d%s", settings.Current.Version.MajorVersion, settings.Current.Version.MinorVersion, settings.Current.Version.Patch, appendix) rl.DrawText(version, 2, int32(rl.GetScreenHeight()) - 20, 20, rl.Black) base.FPS.Draw() } // =============== FPS METER =============== type FpsMeter struct { deltaTime float32 Value float32 FramesElapsed uint } func (base *FpsMeter) Create(SceneManager) { } func (base *FpsMeter) Destroy() { } func (base *FpsMeter) Update() { base.deltaTime += rl.GetFrameTime() base.FramesElapsed++ if base.deltaTime >= 1 { base.Value = float32(base.FramesElapsed) base.deltaTime = 0 base.FramesElapsed = 0 } } func (base *FpsMeter) Draw() { rl.DrawText(fmt.Sprintf("%v FPS", base.Value), 0, 0, 20, rl.Green) }