playground header, font scaling
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package easy_ebitengine
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"game/konstructor"
|
||||
"image/color"
|
||||
|
||||
@@ -9,27 +10,28 @@ import (
|
||||
)
|
||||
|
||||
func (e *Engine) PlaygroundHeaderDraw(screen *ebiten.Image) {
|
||||
header_bg, _ := ebiten.NewImage(e.Config.Screen.Width, 20, ebiten.FilterDefault)
|
||||
header_bg.Fill(color.RGBA{
|
||||
R: 0,
|
||||
G: 255,
|
||||
B: 0,
|
||||
A: 200,
|
||||
})
|
||||
|
||||
fl := konstructor.FontLayout{
|
||||
Path: "assets/fonts/ArcadeClassic.ttf",
|
||||
DPI: 72,
|
||||
Size: 24,
|
||||
}
|
||||
|
||||
face := fl.GetFontFace()
|
||||
e.PlaygroundHeaderBackgroundDraw(screen)
|
||||
e.PlaygroundHeaderTextDraw(screen)
|
||||
}
|
||||
|
||||
func (e *Engine) PlaygroundHeaderBackgroundDraw(screen *ebiten.Image) {
|
||||
background, _ := ebiten.NewImage(e.Config.Screen.Width, e.Config.Header.Height, ebiten.FilterDefault)
|
||||
background.Fill(e.Config.Header.BackgroundColor)
|
||||
geoM := ebiten.GeoM{}
|
||||
geoM.Scale(float64(e.Config.Screen.Scale), float64(e.Config.Screen.Scale))
|
||||
screen.DrawImage(header_bg, &ebiten.DrawImageOptions{
|
||||
GeoM: geoM,
|
||||
})
|
||||
text.Draw(screen, e.Config.Name, face, 10, 20, color.Black)
|
||||
|
||||
screen.DrawImage(background, &ebiten.DrawImageOptions{GeoM: geoM})
|
||||
}
|
||||
|
||||
func (e *Engine) PlaygroundHeaderTextDraw(screen *ebiten.Image) {
|
||||
face := e.Config.Header.FontLayout.GetFontFace(e.Config.Screen.Scale)
|
||||
header_text := fmt.Sprint(e.Config.Name, " LIVES ", e.KContext.LiveCount, " LEVEL ", e.KContext.CurrentLevel)
|
||||
|
||||
offset := getTopOffset(e.Config)
|
||||
text.Draw(screen, header_text, face, 10, offset, color.Black)
|
||||
}
|
||||
|
||||
func getTopOffset(config *konstructor.Config) int {
|
||||
size := int(config.Header.FontLayout.Size) * config.Screen.Scale
|
||||
height := config.Header.Height * config.Screen.Scale
|
||||
return (height-size)/2 + size
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user