diff options
author | David Thompson <dthompson2@worcester.edu> | 2018-08-19 22:49:12 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2018-08-23 08:01:11 -0400 |
commit | d60cca3ccff443e10fabe9a01045e4fd7169d563 (patch) | |
tree | 458bfbaaf6eace0d78c0da77d3a4773f0c43ab6b /examples | |
parent | e63653308851008788b460e16c542cf20c4b059f (diff) |
Make the game loop modular!
This is really cool! Now users can plug in whatever backend they'd
like and are not forced to use SDL and OpenGL. Thanks to Chris Webber
for showing me the Lux library for Racket that does exactly this.
* chickadee.scm (run-game): Remove all SDL/OpenGL code, replace with
generic render/update keyword arguments.
(run-game/sdl): New procedure.
* examples/lines.scm: Update for API breakage.
* examples/nine-patch.scm: Ditto.
* examples/sprite.scm: Ditto.
* examples/text.scm: Ditto.
* examples/tiled.scm: Ditto.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/lines.scm | 5 | ||||
-rw-r--r-- | examples/nine-patch.scm | 6 | ||||
-rw-r--r-- | examples/sprite.scm | 6 | ||||
-rw-r--r-- | examples/text.scm | 12 | ||||
-rw-r--r-- | examples/tiled.scm | 12 |
5 files changed, 13 insertions, 28 deletions
diff --git a/examples/lines.scm b/examples/lines.scm index e6b1929..5e800e0 100644 --- a/examples/lines.scm +++ b/examples/lines.scm @@ -25,7 +25,4 @@ #:thickness thickness))) lines)) -(add-hook! draw-hook draw) -(add-hook! quit-hook abort-game) - -(run-game) +(run-game/sdl #:draw draw) diff --git a/examples/nine-patch.scm b/examples/nine-patch.scm index 5255d34..ed03cab 100644 --- a/examples/nine-patch.scm +++ b/examples/nine-patch.scm @@ -16,8 +16,4 @@ (draw-nine-patch image (make-rect 192.0 192.0 256.0 96.0) #:margin 6) (draw-text font "I am error." (vec2 200.0 266.0))) -(add-hook! load-hook load) -(add-hook! draw-hook draw) -(add-hook! quit-hook abort-game) - -(run-game) +(run-game/sdl #:load load #:draw draw) diff --git a/examples/sprite.scm b/examples/sprite.scm index 92ab364..12a9ffb 100644 --- a/examples/sprite.scm +++ b/examples/sprite.scm @@ -11,8 +11,4 @@ (define (draw alpha) (draw-sprite sprite (vec2 256.0 176.0))) -(add-hook! load-hook load) -(add-hook! draw-hook draw) -(add-hook! quit-hook abort-game) - -(run-game) +(run-game/sdl #:load load #:draw draw) diff --git a/examples/text.scm b/examples/text.scm index 37ac22c..fd299b7 100644 --- a/examples/text.scm +++ b/examples/text.scm @@ -15,12 +15,8 @@ (draw-text font "The quick brown fox jumps over the lazy dog" (vec2 100.0 100.0))) -(add-hook! load-hook load) -(add-hook! draw-hook draw) -(add-hook! quit-hook abort-game) -(add-hook! key-press-hook - (lambda (key scan modifiers repeat?) - (when (eq? key 'q) - (abort-game)))) +(define (key-press key scan modifiers repeat?) + (when (eq? key 'q) + (abort-game))) -(run-game) +(run-game/sdl #:load load #:draw draw #:key-press key-press) diff --git a/examples/tiled.scm b/examples/tiled.scm index 9e42301..3d33052 100644 --- a/examples/tiled.scm +++ b/examples/tiled.scm @@ -23,9 +23,9 @@ ('q (abort-game)) (_ #t))) -(add-hook! load-hook load) -(add-hook! draw-hook draw) -(add-hook! key-press-hook key-press) -(add-hook! quit-hook abort-game) - -(run-game #:window-width 320 #:window-height 240 #:window-title "tile map demo") +(run-game/sdl #:window-width 320 + #:window-height 240 + #:window-title "tile map demo" + #:load load + #:draw draw + #:key-press key-press) |