aboutsummaryrefslogtreecommitdiff
path: root/demo/platformer.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-05 23:12:54 +0100
committerGene Pasquet <dev@etenil.net>2026-04-05 23:12:54 +0100
commitb99ada53b715def5492c7d04c0d327fa7048e5d3 (patch)
tree9e94dbc8ff863ef09ef18f4be31fb45e085572a4 /demo/platformer.scm
parent027053b11a3a5d861ed2fa2db245388bd95ac246 (diff)
Complete implementation
Diffstat (limited to 'demo/platformer.scm')
-rw-r--r--demo/platformer.scm25
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*)