(use-modules (chickadee) (chickadee math vector) (chickadee math rect) (chickadee graphics font) (chickadee graphics tiled) (ice-9 format) (ice-9 match) (srfi srfi-11)) (define map #f) (define camera #v(0.0 0.0)) (define text-position #v(4.0 4.0)) (define text "0, 0") (define (load) (set! map (load-tile-map "maps/example.tmx"))) (define (draw alpha) (draw-tile-map map #:position camera) (draw-text text text-position)) (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))) (define (mouse-move x y x-rel y-rel buttons) (let-values (((tx ty) (point->tile map x y))) (set! text (format #f "~d, ~d" tx ty)))) (run-game #:window-width 320 #:window-height 240 #:window-title "tile map demo" #:load load #:draw draw #:key-press key-press #:mouse-move mouse-move)