diff options
Diffstat (limited to 'demo/platformer.scm')
| -rw-r--r-- | demo/platformer.scm | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/demo/platformer.scm b/demo/platformer.scm index d9276b8..2d30bea 100644 --- a/demo/platformer.scm +++ b/demo/platformer.scm @@ -11,7 +11,8 @@ downstroke/physics downstroke/assets downstroke/entity - downstroke/sound) + downstroke/sound + downstroke/scene-loader) (define *game* (make-game @@ -19,28 +20,20 @@ preload: (lambda (game) (init-audio!) - (load-sounds! '((jump . "demo/assets/jump.wav"))) - (game-asset-set! game 'tilemap - (load-tilemap "demo/assets/level-0.tmx"))) + (load-sounds! '((jump . "demo/assets/jump.wav")))) create: (lambda (game) - (let* ((tm (game-asset game 'tilemap)) - (tex (sdl2:create-texture-from-surface - (game-renderer game) - (tileset-image (tilemap-tileset tm)))) + (let* ((scene (game-load-scene! game "demo/assets/level-0.tmx")) (player (list #:type 'player #:x 100 #:y 50 #:width 16 #:height 16 #:vx 0 #:vy 0 #:gravity? #t #:on-ground? #f - #:tile-id 1))) - (game-scene-set! game - (make-scene - entities: (list player) - tilemap: tm - camera: (make-camera x: 0 y: 0) - tileset-texture: tex)))) + #:tile-id 1 + #:tags '(player))) + (_ (scene-add-entity scene player))) + (scene-camera-target-set! scene 'player))) update: (lambda (game dt) (let* ((input (game-input game)) @@ -63,8 +56,6 @@ (player (apply-velocity-y player)) (player (resolve-tile-collisions-y player tm)) (player (detect-ground player tm))) - (let ((cam-x (max 0 (- (entity-ref player #:x 0) 300)))) - (camera-x-set! (scene-camera scene) cam-x)) (scene-entities-set! scene (list player)))))) (game-run! *game*) |
