aboutsummaryrefslogtreecommitdiff
path: root/src/tilemap.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/tilemap.scm')
-rw-r--r--src/tilemap.scm12
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))))