summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2014-01-10 07:45:41 -0500
committerDavid Thompson <dthompson2@worcester.edu>2014-01-10 07:45:41 -0500
commit5523027f6369e9ec3f990144e8ef2cd4f243476e (patch)
treedf91f447da824dd5e15f0d86aae9e5ec3d4f0409
parent6bdd1e305834dcc9be22d9a54d84f025a24d4825 (diff)
Update some of the example programs to use the new API.
* 2d/examples/common.scm: New file. * 2d/examples/coroutine.scm: Updated. * 2d/examples/font.scm: Updated. * 2d/examples/simple.scm: Updated. * 2d/examples/tilemap.scm: Updated.
-rw-r--r--examples/common.scm8
-rw-r--r--examples/coroutine.scm50
-rw-r--r--examples/font.scm23
-rw-r--r--examples/simple.scm23
-rw-r--r--examples/tilemap.scm20
5 files changed, 55 insertions, 69 deletions
diff --git a/examples/common.scm b/examples/common.scm
new file mode 100644
index 0000000..15bc53b
--- /dev/null
+++ b/examples/common.scm
@@ -0,0 +1,8 @@
+(use-modules (2d keyboard)
+ (2d repl server))
+
+(spawn-server)
+
+(add-hook! key-press-hook (lambda (key unicode)
+ (when (eq? key 'escape)
+ (quit-game))))
diff --git a/examples/coroutine.scm b/examples/coroutine.scm
index 58b3a1b..cd01381 100644
--- a/examples/coroutine.scm
+++ b/examples/coroutine.scm
@@ -1,35 +1,31 @@
(use-modules (2d agenda)
(2d coroutine)
(2d game)
- (2d scene)
(2d sprite)
- (2d stage)
- (2d vector2))
+ (2d vector2)
+ (2d window))
-(define (enter sprite)
- ;; Simple script that moves the sprite to a random location every
- ;; second.
- (agenda-schedule
- (colambda ()
- (while #t
- (set-sprite-position!
- sprite
- (vector2 (random (vx (game-resolution coroutine-demo)))
- (random (vy (game-resolution coroutine-demo)))))
- (wait 60)))))
+(load "common.scm")
-(define coroutine-scene
- (make-scene
- "Coroutine"
- #:init (lambda ()
- (load-sprite "images/ghost.png"
- #:position (vector2 320 240)))
- #:enter enter
- #:draw draw-sprite))
+(define window-width 640)
+(define window-height 480)
-(define coroutine-demo
- (make-game
- #:title "Coroutines"
- #:first-scene coroutine-scene))
+(define sprite (load-sprite "images/p1_front.png"
+ #:position (vector2 320 240)))
-(run-game coroutine-demo)
+;; Simple script that moves the sprite to a random location every
+;; second.
+(schedule-interval
+ (lambda ()
+ (set-sprite-position!
+ sprite
+ (vector2 (random window-width)
+ (random window-height))))
+ 60)
+
+(add-hook! draw-hook (lambda (dt alpha) (draw-sprite sprite)))
+
+(with-window (make-window #:title "Coroutines"
+ #:resolution (vector2 window-width
+ window-height))
+ (run-game-loop))
diff --git a/examples/font.scm b/examples/font.scm
index 05eb4bf..465600c 100644
--- a/examples/font.scm
+++ b/examples/font.scm
@@ -3,11 +3,12 @@
(2d color)
(2d font)
(2d game)
- (2d scene)
- (2d stage)
- (2d vector2))
+ (2d vector2)
+ (2d window))
-(define (make-demo-textbox)
+(load "common.scm")
+
+(define textbox
(make-textbox (load-font "fonts/Boxy-Bold.ttf" 48)
"The quick brown fox jumped over the lazy dog."
(vector2 240 160)
@@ -15,15 +16,7 @@
'left
200))
-(define fonts-scene
- (make-scene
- "Fonts"
- #:init make-demo-textbox
- #:draw draw-textbox))
-
-(define fonts-demo
- (make-game
- #:title "Fonts"
- #:first-scene fonts-scene))
+(add-hook! draw-hook (lambda (dt alpha) (draw-textbox textbox)))
-(run-game fonts-demo)
+(with-window (make-window #:title "Fonts")
+ (run-game-loop))
diff --git a/examples/simple.scm b/examples/simple.scm
index 04711a5..d00a7d0 100644
--- a/examples/simple.scm
+++ b/examples/simple.scm
@@ -1,21 +1,14 @@
(use-modules (2d game)
- (2d scene)
(2d sprite)
- (2d vector2))
+ (2d vector2)
+ (2d window))
-(define (make-demo-sprite)
- (load-sprite "images/ghost.png"
- #:position (vector2 320 240)))
+(load "common.scm")
-(define simple-scene
- (make-scene
- "Simple"
- #:init make-demo-sprite
- #:draw draw-sprite))
+(define sprite (load-sprite "images/p1_front.png"
+ #:position (vector2 320 240)))
-(define simple-demo
- (make-game
- #:title "Simple Demo"
- #:first-scene simple-scene))
+(add-hook! draw-hook (lambda (dt alpha) (draw-sprite sprite)))
-(run-game simple-demo)
+(with-window (make-window #:title "Simple Sprite Demo")
+ (run-game-loop))
diff --git a/examples/tilemap.scm b/examples/tilemap.scm
index 011136d..6b024c7 100644
--- a/examples/tilemap.scm
+++ b/examples/tilemap.scm
@@ -2,11 +2,13 @@
(srfi srfi-9)
(srfi srfi-42)
(2d game)
- (2d scene)
(2d sprite)
(2d texture)
(2d tileset)
- (2d vector2))
+ (2d vector2)
+ (2d window))
+
+(load "common.scm")
;;;
;;; Orthogonal tile map example
@@ -82,15 +84,9 @@
tileset
map-tiles))))
-(define tilemap-scene
- (make-scene
- "Tilemap"
- #:init build-map
- #:draw draw-map-layer))
+(define layer (build-map))
-(define tilemap
- (make-game
- #:title "Tilemap"
- #:first-scene tilemap-scene))
+(add-hook! draw-hook (lambda (dt alpha) (draw-map-layer layer)))
-(run-game tilemap)
+(with-window (make-window #:title "Tilemap")
+ (run-game-loop))