aboutsummaryrefslogtreecommitdiff
path: root/demo/topdown.scm
diff options
context:
space:
mode:
Diffstat (limited to 'demo/topdown.scm')
-rw-r--r--demo/topdown.scm25
1 files changed, 7 insertions, 18 deletions
diff --git a/demo/topdown.scm b/demo/topdown.scm
index 9bbaf08..b95ccc9 100644
--- a/demo/topdown.scm
+++ b/demo/topdown.scm
@@ -10,33 +10,24 @@
downstroke/input
downstroke/physics
downstroke/assets
- downstroke/entity)
+ downstroke/entity
+ downstroke/scene-loader)
(define *game*
(make-game
title: "Demo: Top-down Explorer" width: 600 height: 400
- preload: (lambda (game)
- (game-asset-set! game 'tilemap
- (load-tilemap "demo/assets/level-0.tmx")))
-
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 100
#:width 16 #:height 16
#:vx 0 #:vy 0
#:gravity? #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))
@@ -52,8 +43,6 @@
(player (resolve-tile-collisions-x player tm))
(player (apply-velocity-y player))
(player (resolve-tile-collisions-y player tm)))
- (camera-x-set! (scene-camera scene) (max 0 (- (entity-ref player #:x 0) 300)))
- (camera-y-set! (scene-camera scene) (max 0 (- (entity-ref player #:y 0) 200)))
(scene-entities-set! scene (list player))))))
(game-run! *game*)