diff options
Diffstat (limited to 'engine/CoreObjects/OverlayScene.go')
| -rw-r--r-- | engine/CoreObjects/OverlayScene.go | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/engine/CoreObjects/OverlayScene.go b/engine/CoreObjects/OverlayScene.go new file mode 100644 index 0000000..5c43e11 --- /dev/null +++ b/engine/CoreObjects/OverlayScene.go @@ -0,0 +1,60 @@ +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) Update() { + base.FPS.Update() +} + +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) +} |
