aboutsummaryrefslogtreecommitdiff
path: root/demo/spritefont.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-06 03:41:09 +0100
committerGene Pasquet <dev@etenil.net>2026-04-06 03:41:09 +0100
commit78a924defabc862a7cfa5476091152c1ef5333ee (patch)
tree5e7e13ca27848dfe87ecf3eb82689d8e9488beb3 /demo/spritefont.scm
parentc4ebbbdd1a0bd081a2ed9447ba8188d97ae54717 (diff)
Fixes, updated license
Diffstat (limited to 'demo/spritefont.scm')
-rw-r--r--demo/spritefont.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/demo/spritefont.scm b/demo/spritefont.scm
new file mode 100644
index 0000000..8895d3c
--- /dev/null
+++ b/demo/spritefont.scm
@@ -0,0 +1,51 @@
+(import scheme
+ (chicken base)
+ (prefix sdl2 "sdl2:")
+ (prefix sdl2-ttf "ttf:")
+ (prefix sdl2-image "img:")
+ downstroke-engine
+ downstroke-world
+ downstroke-tilemap
+ downstroke-renderer
+ downstroke-assets
+ downstroke-scene-loader)
+
+(define *sprite-font* #f)
+
+(define *game*
+ (make-game
+ title: "Demo: Sprite Font" width: 600 height: 400
+
+ create: (lambda (game)
+ (let* ((scene (game-load-scene! game "demo/assets/level-0.tmx"))
+ (tileset (tilemap-tileset (scene-tilemap scene))))
+ ;; Create sprite font with character ranges
+ ;; A-M: tiles 917-929, N-Z: tiles 966-978, 0-9: tiles 868-877
+ (set! *sprite-font*
+ (make-sprite-font*
+ #:tile-size 16
+ #:spacing 1
+ #:ranges '((#\A #\M 918)
+ (#\N #\Z 967)
+ (#\0 #\9 869))))))
+
+ render: (lambda (game)
+ (let* ((renderer (game-renderer game))
+ (scene (game-scene game))
+ (tileset (tilemap-tileset (scene-tilemap scene)))
+ (tileset-texture (scene-tileset-texture scene)))
+ ;; Clear background
+ (set! (sdl2:render-draw-color renderer) (sdl2:make-color 30 30 60 255))
+ (sdl2:render-fill-rect! renderer (sdl2:make-rect 0 0 600 400))
+
+ ;; Draw sprite text at various positions
+ (draw-sprite-text renderer tileset-texture tileset *sprite-font*
+ "HELLO WORLD" 50 50)
+ (draw-sprite-text renderer tileset-texture tileset *sprite-font*
+ "DOWNSTROKE" 100 120)
+ (draw-sprite-text renderer tileset-texture tileset *sprite-font*
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 20 200)
+ (draw-sprite-text renderer tileset-texture tileset *sprite-font*
+ "0123456789" 150 280)))))
+
+(game-run! *game*)