(use-modules (chickadee) (chickadee math vector) (chickadee math rect) (chickadee render tiled) (ice-9 match)) (define map #f) (define camera (vec2 0.0 0.0)) (define (load) (set! map (load-tile-map "maps/example.tmx"))) (define (draw alpha) (draw-tile-map map #:position camera)) (define inc 8.0) (define (key-press key scancode modifiers repeat?) (match key ('up (set-vec2-y! camera (- (vec2-y camera) inc))) ('down (set-vec2-y! camera (+ (vec2-y camera) inc))) ('right (set-vec2-x! camera (- (vec2-x camera) inc))) ('left (set-vec2-x! camera (+ (vec2-x camera) inc))) ('q (abort-game)) (_ #t))) (add-hook! load-hook load) (add-hook! draw-hook draw) (add-hook! key-press-hook key-press) (add-hook! quit-hook abort-game) (run-game #:window-width 320 #:window-height 240 #:window-title "tile map demo")