summaryrefslogtreecommitdiff
path: root/examples/scenes.scm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scenes.scm')
-rw-r--r--examples/scenes.scm72
1 files changed, 38 insertions, 34 deletions
diff --git a/examples/scenes.scm b/examples/scenes.scm
index 534eb56..ec0de6d 100644
--- a/examples/scenes.scm
+++ b/examples/scenes.scm
@@ -1,5 +1,8 @@
-(use-modules (2d sprite)
- (2d game)
+(use-modules (2d game)
+ (2d game-loop)
+ (2d scene)
+ (2d stage)
+ (2d sprite)
(2d vector2))
;; Press the RETURN key to toggle between the 2 scenes.
@@ -12,20 +15,20 @@
(load-sprite "images/ghost.png"
#:position (vector2 320 240)))
-(define (scene-1-key-press sprite key mod unicode)
+(define (scene-1-key-down sprite key mod unicode)
(when (eq? key 'return)
- (replace-scene (scene-2))))
-
-(define-scene scene-1
- #:title "Scene 1"
- #:draw (lambda (sprite) (draw-sprite sprite))
- #:events (append
- (default-scene-events)
- `((start . ,(lambda (state) (display "Start Scene 1\n")))
- (stop . ,(lambda (state) (display "Stop Scene 1\n")))
- (key-down . ,(lambda (state key mod unicode)
- (scene-1-key-press state key mod unicode)))))
- #:state (make-sprite-1))
+ (replace-scene scene-2)))
+
+(define scene-1
+ (make-scene
+ "Scene 1"
+ #:init make-sprite-1
+ #:enter (lambda (sprite) (display "Enter Scene 1\n"))
+ #:exit (lambda (sprite) (display "Exit Scene 1\n"))
+ #:draw draw-sprite
+ #:events (append
+ (default-events)
+ `((key-down . ,scene-1-key-down)))))
;;;
;;; Scene 2
@@ -35,23 +38,24 @@
(load-sprite "images/stars.png"
#:position (vector2 320 240)))
-(define (scene-2-key-press sprite key mod unicode)
+(define (scene-2-key-down sprite key mod unicode)
(when (eq? key 'return)
- (replace-scene (scene-1))))
-
-(define-scene scene-2
- #:title "Scene 2"
- #:draw (lambda (sprite) (draw-sprite sprite))
- #:events (append
- (default-scene-events)
- `((start . ,(lambda (state) (display "Start Scene 2\n")))
- (stop . ,(lambda (state) (display "Stop Scene 2\n")))
- (key-down . ,(lambda (state key mod unicode)
- (scene-2-key-press state key mod unicode)))))
- #:state (make-sprite-2))
-
-(define-game scenes
- #:title "Scenes"
- #:first-scene scene-1)
-
-(run-game scenes)
+ (replace-scene scene-1)))
+
+(define scene-2
+ (make-scene
+ "Scene 2"
+ #:init make-sprite-2
+ #:enter (lambda (sprite) (display "Enter Scene 2\n"))
+ #:exit (lambda (sprite) (display "Exit Scene 2\n"))
+ #:draw draw-sprite
+ #:events (append
+ (default-events)
+ `((key-down . ,scene-2-key-down)))))
+
+(define scenes-demo
+ (make-game
+ #:title "Scenes"
+ #:first-scene scene-1))
+
+(run-game scenes-demo)