From daa5e41551ee2b94e8c4d6fdc89b3516adaf3132 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Sun, 17 Mar 2024 16:30:11 +0100 Subject: [PATCH] center description --- systems/hud_system.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/systems/hud_system.go b/systems/hud_system.go index 13c258b..63ebd60 100644 --- a/systems/hud_system.go +++ b/systems/hud_system.go @@ -5,12 +5,15 @@ import ( "image/color" "openquell/assets" "openquell/observers" + "strings" "github.com/hajimehoshi/ebiten/v2" "github.com/mlange-42/arche/ecs" "github.com/solarlune/ldtkgo" ) +const MaxLetters int = 52 + type HudSystem struct { World *ecs.World Cellsize int @@ -46,14 +49,17 @@ func (system *HudSystem) Draw(screen *ebiten.Image) { */ score := fmt.Sprintf("Score: %d", system.Observer.GetScore()) - level := fmt.Sprintf("Level %d %s", system.Plan.PropertyByIdentifier("level").AsInt(), - system.Plan.Identifier) + level := fmt.Sprintf("Level %d: %s", system.Plan.PropertyByIdentifier("level").AsInt(), + strings.ReplaceAll(system.Plan.Identifier, "_", " ")) assets.FontRenderer.Renderer.SetSizePx(20) assets.FontRenderer.Renderer.SetTarget(screen) system.Print(score, 515, 22) - system.Print(system.Plan.PropertyByIdentifier("description").AsString(), 10, 470) + des := system.Plan.PropertyByIdentifier("description").AsString() + x := system.GetTextXCentered(des) + + system.Print(system.Plan.PropertyByIdentifier("description").AsString(), x, 470) system.Print(level, 10, 22) } @@ -66,3 +72,10 @@ func (system *HudSystem) Print(text string, x, y int) { assets.FontRenderer.Renderer.SetColor(fg) assets.FontRenderer.Renderer.Draw(text, x-1, y-1) } + +func (system *HudSystem) GetTextXCentered(text string) int { + size := len(text) + lettersize := system.Observer.Width / MaxLetters + descsize := lettersize * size + return system.Observer.Width/2 - descsize/2 +}