From 777e31518c8ae52e9e15867fb60c958fa7a15610 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 3 Nov 2013 20:03:07 -0500 Subject: Update examples to use new scene/stage system. --- examples/scenes.scm | 72 ++++++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 34 deletions(-) (limited to 'examples/scenes.scm') 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) -- cgit v1.2.3