45 lines
1.2 KiB
Scheme
45 lines
1.2 KiB
Scheme
(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))))
|
|
|
|
|