diff options
| author | Gene Pasquet <dev@etenil.net> | 2025-11-09 23:51:55 +0000 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2025-11-10 00:36:35 +0000 |
| commit | 913f1d745d887367f081ebb5250774771d7f56e1 (patch) | |
| tree | c50724bb8330ab6e37646046f0e4eac907e7e494 /src/tilemap.scm | |
| parent | 678123574311d0c07937b0b308ddad253f0f3e52 (diff) | |
Display tiles correctly
Diffstat (limited to 'src/tilemap.scm')
| -rw-r--r-- | src/tilemap.scm | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tilemap.scm b/src/tilemap.scm index 8d0379b..6f6c3ef 100644 --- a/src/tilemap.scm +++ b/src/tilemap.scm @@ -148,12 +148,14 @@ (define (tileset-tile tileset tile-id) ;; Use the tileset's columns setting and the tileheight/tilewidth to ;; find the tile's x,y location and create a rect - (let* ((tile-width (tileset-tilewidth tileset)) + (let* ((tile-num (- tile-id 1)) ; tile-id starts at 1! + (tile-width (tileset-tilewidth tileset)) (tile-height (tileset-tileheight tileset)) - (tile-x (modulo tile-id (tileset-columns tileset))) - (tile-y (inexact->exact (floor (/ tile-id (tileset-columns tileset))))) - (x (* tile-x tile-width)) - (y (* tile-y tile-height))) + (tile-x (modulo tile-num (tileset-columns tileset))) + (tile-y (inexact->exact (floor (/ tile-num (tileset-columns tileset))))) + (x (+ (* tile-x tile-width) tile-x)) + (y (+ (* tile-y tile-height) tile-y))) + (pp (list tile-x tile-y x y)) (make-tile id: tile-id rect: (sdl2:make-rect x y tile-width tile-height)))) |
