]> git.jsancho.org Git - gacela.git/blobdiff - gacela/image.scm
Primitive game loop with some basic scenes
[gacela.git] / gacela / image.scm
diff --git a/gacela/image.scm b/gacela/image.scm
new file mode 100644 (file)
index 0000000..6a97101
--- /dev/null
@@ -0,0 +1,37 @@
+;;; Gacela, a GNU Guile extension for fast games development
+;;; Copyright (C) 2016 by Javier Sancho Fernandez <jsf at jsancho dot org>
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program 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 General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+(define-module (gacela image)
+  #:use-module (gacela scene)
+  #:use-module ((sdl2 surface) #:prefix sdl2:)
+  #:export (import-bitmap
+           move-xy))
+
+(define-syntax-rule (import-bitmap filename)
+  (make-scene
+   "bitmap"
+   (let ((surface (sdl2:load-bmp filename)))
+     (let ((a 0))
+       (lambda ()
+        (set! a (+ a 1))
+        (format #t "Steps: ~a~%" a))))))
+
+(define-syntax-rule (move-xy x y scene)
+  (make-scene
+   "move-xy"
+   (lambda ()
+     (display-scene scene))))