center description

This commit is contained in:
Thomas von Dein 2024-03-17 16:30:11 +01:00
parent 35057ec8a6
commit daa5e41551

View File

@ -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
}