diff options
Diffstat (limited to '2d/scene.scm')
-rw-r--r-- | 2d/scene.scm | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/2d/scene.scm b/2d/scene.scm deleted file mode 100644 index cb053b7..0000000 --- a/2d/scene.scm +++ /dev/null @@ -1,93 +0,0 @@ -;;; guile-2d -;;; Copyright (C) 2013 David Thompson <dthompson2@worcester.edu> -;;; -;;; Guile-2d is free software: you can redistribute it and/or modify it -;;; under the terms of the GNU Lesser General Public License as -;;; published by the Free Software Foundation, either version 3 of the -;;; License, or (at your option) any later version. -;;; -;;; Guile-2d is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; Lesser General Public License for more details. -;;; -;;; You should have received a copy of the GNU Lesser General Public -;;; License along with this program. If not, see -;;; <http://www.gnu.org/licenses/>. - -;;; Commentary: -;; -;; Scenes describe the behavioral aspects of a game. -;; -;;; Code: - -(define-module (2d scene) - #:use-module (srfi srfi-9) - #:use-module (2d observer) - #:export (<scene> - make-scene - scene? - scene-name - scene-init - scene-enter - scene-exit - scene-draw - scene-update - scene-observer - init-scene - enter-scene - exit-scene - draw-scene - update-scene - scene-trigger - default-events)) - -(define-record-type <scene> - (%make-scene name init enter exit draw update observer) - scene? - (name scene-name) - (init scene-init) - (enter scene-enter) - (exit scene-exit) - (draw scene-draw) - (update scene-update) - (observer scene-observer)) - -(define no-op (lambda args #f)) -(define default-events (make-parameter '())) - -(define* (make-scene name - #:optional #:key - (init no-op) - (enter no-op) - (exit no-op) - (draw no-op) - (update no-op) - (events (default-events))) - "Create a new scene object. All callbacks default to a no-op." - (%make-scene name init enter exit draw update - (alist->observer events))) - -(define (init-scene scene) - "Return the value returned by the state constructor thunk for -SCENE." - ((scene-init scene))) - -(define (enter-scene scene state) - "Call enter callback for SCENE with STATE." - ((scene-enter scene) state)) - -(define (exit-scene scene state) - "Call the exit callback for SCENE with STATE." - ((scene-exit scene) state)) - -(define (draw-scene scene state) - "Call the draw callback for SCENE with STATE." - ((scene-draw scene) state)) - -(define (update-scene scene state) - "Call the update callback for SCENE with STATE." - ((scene-update scene) state)) - -(define (scene-trigger scene state event . args) - (apply observer-trigger (scene-observer scene) event state args)) |