1
0
Fork 0

add debug mode for drawing either minimap or palette

This commit is contained in:
Henrik Hautakoski 2025-06-25 22:25:43 +02:00
parent 90f9eb43b2
commit 3f65829e43

27
main.go
View file

@ -12,12 +12,20 @@ import (
"github.com/veandco/go-sdl2/sdl" "github.com/veandco/go-sdl2/sdl"
) )
type DebugMode int
const (
DebugMode_NONE DebugMode = iota
DebugMode_MINIMAP
DebugMode_PALETTE
)
var ( var (
gfxContext *graphics.Context gfxContext *graphics.Context
player Player player Player
level *world.Level level *world.Level
startOfFrame time.Time startOfFrame time.Time
drawMinimap bool debugMode DebugMode
) )
func loadLevel(newLevel *world.Level) { func loadLevel(newLevel *world.Level) {
@ -40,8 +48,18 @@ func update() bool {
case *sdl.KeyboardEvent: case *sdl.KeyboardEvent:
if ev.Type == sdl.KEYDOWN { if ev.Type == sdl.KEYDOWN {
switch ev.Keysym.Sym { switch ev.Keysym.Sym {
case sdl.K_p:
if debugMode != DebugMode_PALETTE {
debugMode = DebugMode_PALETTE
} else {
debugMode = DebugMode_NONE
}
case sdl.K_m: case sdl.K_m:
drawMinimap = !drawMinimap if debugMode != DebugMode_MINIMAP {
debugMode = DebugMode_MINIMAP
} else {
debugMode = DebugMode_NONE
}
case sdl.K_ESCAPE: case sdl.K_ESCAPE:
return true return true
} }
@ -89,9 +107,12 @@ func main() {
} }
render.DrawScene(gfxContext, player.Transform, level) render.DrawScene(gfxContext, player.Transform, level)
if drawMinimap { if debugMode == DebugMode_MINIMAP {
render.DrawMiniMap(gfxContext, player.Transform, level) render.DrawMiniMap(gfxContext, player.Transform, level)
} }
if debugMode == DebugMode_PALETTE {
render.DrawPalette(gfxContext, 16, 16)
}
gfxContext.Sync() gfxContext.Sync()
elapsed := time.Since(startOfFrame) elapsed := time.Since(startOfFrame)