aboutsummaryrefslogtreecommitdiff
path: root/demo
diff options
context:
space:
mode:
Diffstat (limited to 'demo')
-rw-r--r--demo/platformer.scm25
-rw-r--r--demo/sandbox.scm19
-rw-r--r--demo/shmup.scm3
-rw-r--r--demo/topdown.scm25
4 files changed, 21 insertions, 51 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*)
diff --git a/demo/sandbox.scm b/demo/sandbox.scm
index 1be3968..ffc0cca 100644
--- a/demo/sandbox.scm
+++ b/demo/sandbox.scm
@@ -11,7 +11,8 @@
downstroke/input
downstroke/physics
downstroke/assets
- downstroke/entity)
+ downstroke/entity
+ downstroke/scene-loader)
(define *elapsed* 0)
(define *respawn-interval* 10000)
@@ -36,21 +37,9 @@
(make-game
title: "Demo: Physics Sandbox" 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)))))
- (game-scene-set! game
- (make-scene
- entities: (spawn-entities)
- tilemap: tm
- camera: (make-camera x: 0 y: 0)
- tileset-texture: tex))))
+ (let ((scene (game-load-scene! game "demo/assets/level-0.tmx")))
+ (scene-entities-set! scene (spawn-entities))))
update: (lambda (game dt)
(let* ((scene (game-scene game))
diff --git a/demo/shmup.scm b/demo/shmup.scm
index ae7748d..19cc478 100644
--- a/demo/shmup.scm
+++ b/demo/shmup.scm
@@ -59,7 +59,8 @@
entities: (list (make-player))
tilemap: #f
camera: (make-camera x: 0 y: 0)
- tileset-texture: #f)))
+ tileset-texture: #f
+ camera-target: #f)))
update: (lambda (game dt)
(let* ((input (game-input game))
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*)