mirror of
https://codeberg.org/scip/golsky.git
synced 2025-12-16 12:10:58 +01:00
use etxt for debug printing
This commit is contained in:
6
game.go
6
game.go
@@ -1,12 +1,15 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import "github.com/hajimehoshi/ebiten/v2"
|
import (
|
||||||
|
"github.com/hajimehoshi/ebiten/v2"
|
||||||
|
)
|
||||||
|
|
||||||
type Game struct {
|
type Game struct {
|
||||||
ScreenWidth, ScreenHeight, Cellsize int
|
ScreenWidth, ScreenHeight, Cellsize int
|
||||||
Scenes map[SceneName]Scene
|
Scenes map[SceneName]Scene
|
||||||
CurrentScene SceneName
|
CurrentScene SceneName
|
||||||
Config *Config
|
Config *Config
|
||||||
|
Scale int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewGame(config *Config, startscene SceneName) *Game {
|
func NewGame(config *Config, startscene SceneName) *Game {
|
||||||
@@ -34,6 +37,7 @@ func (game *Game) GetCurrentScene() Scene {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (game *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
func (game *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
||||||
|
game.Scale = outsideWidth / 100
|
||||||
return game.ScreenWidth, game.ScreenHeight
|
return game.ScreenWidth, game.ScreenHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -16,6 +16,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/tinne26/etxt v0.0.8 h1:rjb58jkMkapRGLmhBMWnT76E/nMTXC5P1Q956BRZkoc=
|
github.com/tinne26/etxt v0.0.8 h1:rjb58jkMkapRGLmhBMWnT76E/nMTXC5P1Q956BRZkoc=
|
||||||
github.com/tinne26/etxt v0.0.8/go.mod h1:QM/hlNkstsKC39elTFNKAR34xsMb9QoVosf+g9wlYxM=
|
github.com/tinne26/etxt v0.0.8/go.mod h1:QM/hlNkstsKC39elTFNKAR34xsMb9QoVosf+g9wlYxM=
|
||||||
|
github.com/tinne26/etxt v0.0.9-alpha.6.0.20240409152929-91bfc562becc h1:+USGSXbkrRAy6bz3Qm4GUczhqeXe7XlRfkRexCSFxkw=
|
||||||
|
github.com/tinne26/etxt v0.0.9-alpha.6.0.20240409152929-91bfc562becc/go.mod h1:Icbd4bDjrXag1oYIhB51CrkMYqRb7YMv0AsrOSfNKfU=
|
||||||
golang.org/x/image v0.16.0 h1:9kloLAKhUufZhA12l5fwnx2NZW39/we1UhBesW433jw=
|
golang.org/x/image v0.16.0 h1:9kloLAKhUufZhA12l5fwnx2NZW39/we1UhBesW433jw=
|
||||||
golang.org/x/image v0.16.0/go.mod h1:ugSZItdV4nOxyqp56HmXwH0Ry0nBCpjnZdpDaIHdoPs=
|
golang.org/x/image v0.16.0/go.mod h1:ugSZItdV4nOxyqp56HmXwH0Ry0nBCpjnZdpDaIHdoPs=
|
||||||
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ var FontRenderer = LoadFonts("assets/fonts")
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
GameFont string = "NotoSans-Regular"
|
GameFont string = "NotoSans-Regular"
|
||||||
|
GameFontETXT string = "Noto Sans"
|
||||||
FontSizeBig int = 48
|
FontSizeBig int = 48
|
||||||
FontSizeNormal int = 24
|
FontSizeNormal int = 24
|
||||||
FontSizeSmall int = 12
|
FontSizeSmall int = 12
|
||||||
@@ -25,6 +26,7 @@ type Texter struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func LoadFonts(dir string) Texter {
|
func LoadFonts(dir string) Texter {
|
||||||
|
// load the font for use with ebitenui
|
||||||
fontbytes, err := assetfs.ReadFile(dir + "/" + GameFont + ".ttf")
|
fontbytes, err := assetfs.ReadFile(dir + "/" + GameFont + ".ttf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@@ -53,14 +55,26 @@ func LoadFonts(dir string) Texter {
|
|||||||
Hinting: font.HintingFull,
|
Hinting: font.HintingFull,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// load the font for use with etxt
|
||||||
fontlib := etxt.NewFontLibrary()
|
fontlib := etxt.NewFontLibrary()
|
||||||
_, _, err = fontlib.ParseEmbedDirFonts(dir, assetfs)
|
_, _, err = fontlib.ParseEmbedDirFonts(dir, assetfs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Error while loading fonts: %s", err.Error())
|
log.Fatalf("Error while loading fonts: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !fontlib.HasFont(GameFont) {
|
/*
|
||||||
log.Fatal("missing font: " + GameFont)
|
err = fontlib.EachFont(
|
||||||
|
func(fontName string, font *etxt.Font) error {
|
||||||
|
fmt.Printf("font: %s\n", fontName)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
if !fontlib.HasFont(GameFontETXT) {
|
||||||
|
log.Fatal("missing font: " + GameFontETXT)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = fontlib.EachFont(checkMissingRunes)
|
err = fontlib.EachFont(checkMissingRunes)
|
||||||
@@ -72,7 +86,7 @@ func LoadFonts(dir string) Texter {
|
|||||||
|
|
||||||
glyphsCache := etxt.NewDefaultCache(10 * 1024 * 1024) // 10MB
|
glyphsCache := etxt.NewDefaultCache(10 * 1024 * 1024) // 10MB
|
||||||
renderer.SetCacheHandler(glyphsCache.NewHandler())
|
renderer.SetCacheHandler(glyphsCache.NewHandler())
|
||||||
renderer.SetFont(fontlib.GetFont(GameFont))
|
renderer.SetFont(fontlib.GetFont(GameFontETXT))
|
||||||
|
|
||||||
return Texter{
|
return Texter{
|
||||||
Renderer: renderer,
|
Renderer: renderer,
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/hajimehoshi/ebiten/v2"
|
"github.com/hajimehoshi/ebiten/v2"
|
||||||
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
|
|
||||||
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
"github.com/hajimehoshi/ebiten/v2/inpututil"
|
||||||
"github.com/hajimehoshi/ebiten/v2/vector"
|
"github.com/hajimehoshi/ebiten/v2/vector"
|
||||||
"github.com/tlinden/golsky/rle"
|
"github.com/tlinden/golsky/rle"
|
||||||
@@ -450,6 +449,7 @@ func (scene *ScenePlay) Draw(screen *ebiten.Image) {
|
|||||||
scene.Camera.Render(scene.World, screen)
|
scene.Camera.Render(scene.World, screen)
|
||||||
|
|
||||||
if scene.Config.Debug {
|
if scene.Config.Debug {
|
||||||
|
|
||||||
paused := ""
|
paused := ""
|
||||||
if scene.Paused {
|
if scene.Paused {
|
||||||
paused = "-- paused --"
|
paused = "-- paused --"
|
||||||
@@ -458,8 +458,17 @@ func (scene *ScenePlay) Draw(screen *ebiten.Image) {
|
|||||||
debug := fmt.Sprintf("FPS: %0.2f, TPG: %d, Mem: %0.2f MB, Generations: %d %s",
|
debug := fmt.Sprintf("FPS: %0.2f, TPG: %d, Mem: %0.2f MB, Generations: %d %s",
|
||||||
ebiten.ActualTPS(), scene.TPG, GetMem(), scene.Generations, paused)
|
ebiten.ActualTPS(), scene.TPG, GetMem(), scene.Generations, paused)
|
||||||
|
|
||||||
ebitenutil.DebugPrint(screen, debug)
|
FontRenderer.Renderer.SetSizePx(10 + scene.Game.Scale/2)
|
||||||
fmt.Println(debug)
|
FontRenderer.Renderer.SetTarget(screen)
|
||||||
|
|
||||||
|
FontRenderer.Renderer.SetColor(scene.Black)
|
||||||
|
FontRenderer.Renderer.Draw(debug, 31, 31)
|
||||||
|
|
||||||
|
FontRenderer.Renderer.SetColor(scene.Old)
|
||||||
|
FontRenderer.Renderer.Draw(debug, 30, 30)
|
||||||
|
|
||||||
|
//ebitenutil.DebugPrint(screen, debug)
|
||||||
|
fmt.Println(debug, scene.Game.Scale)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user