diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-06 03:41:09 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-06 03:41:09 +0100 |
| commit | 78a924defabc862a7cfa5476091152c1ef5333ee (patch) | |
| tree | 5e7e13ca27848dfe87ecf3eb82689d8e9488beb3 /demo/spritefont.scm | |
| parent | c4ebbbdd1a0bd081a2ed9447ba8188d97ae54717 (diff) | |
Fixes, updated license
Diffstat (limited to 'demo/spritefont.scm')
| -rw-r--r-- | demo/spritefont.scm | 51 |
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*) |
