(define-module (game main) #:use-module (game model level) #:use-module (game model hero) #:use-module (game render level) #:use-module (game render hero) #:use-module (chickadee) #:use-module (chickadee math rect) #:use-module (chickadee math vector) #:use-module (chickadee graphics color) #:use-module (chickadee graphics sprite) #:use-module (chickadee graphics texture) #:use-module (chickadee graphics text) #:use-module (chickadee graphics tile-map) #:use-module (system repl coop-server) #:export (launch-game)) (define level #f) (define repl #f) (define hero #f) (define (load) (render-level-load) (render-hero-load) (set! level (level-parse-file "assets/levels/level-1.map")) (render-level-set! level) (set! hero (hero-load)) (set! repl (spawn-coop-repl-server))) (define (update dt) (poll-coop-repl-server repl) (set! hero (hero-with-x hero (floor-remainder (+ (hero-x hero) (* 50.0 dt)) 608.0)))) (define (draw _alpha) (render-level-draw level) (render-hero hero) ) (define (launch-game args) (run-game #:load (lambda () (load)) #:update (lambda (dt) (update dt)) #:draw (lambda (alpha) (draw alpha))))