From b99ada53b715def5492c7d04c0d327fa7048e5d3 Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Sun, 5 Apr 2026 23:12:54 +0100 Subject: Complete implementation --- demo/platformer.scm | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'demo/platformer.scm') 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*) -- cgit v1.2.3