]> git.jsancho.org Git - gacela.git/commitdiff
Merge branch 'release/0.5'
authorJavier Sancho <jsf@jsancho.org>
Thu, 20 Apr 2017 23:41:06 +0000 (01:41 +0200)
committerJavier Sancho <jsf@jsancho.org>
Thu, 20 Apr 2017 23:41:06 +0000 (01:41 +0200)
examples/01-hello-world/01-hello-world.scm
examples/02-event-driven-programming/02-event-driven-programming.scm
examples/03-key-presses/03-key-presses.scm
examples/04-stretch-images/04-stretch-images.scm
examples/05-animations/05-animations.scm [new file with mode: 0644]
examples/05-animations/homer.png [new file with mode: 0644]
examples/05-animations/marge.png [new file with mode: 0644]
gacela/image.scm

index 61263f13ed08f72a263e2a54b8a66181c602e3c8..2a18040b2790ea0d8230b222b8eeaa46186096a0 100644 (file)
@@ -21,4 +21,4 @@
 
 (display-scene
  (window ((resolution '(640 480)))
-   (bitmap "hello-world.bmp")))
+   (image "hello-world.bmp")))
index b15123368cbafcdf90ae2a4f47761976a673db88..a75eddfd5770e99d9f75e3592c82275a06c7b796 100644 (file)
@@ -31,4 +31,4 @@
 (display-scene
  (window ((resolution '(640 480))
          (when-quit counter-quit))
-   (bitmap "x.bmp")))
+   (image "x.bmp")))
index 06fa1868ab8c1e8271646eb30e6de8b36293f399..ed8a65d8ea24d210f780a7702a591035c71c077d 100644 (file)
 (define get-pressed-scene #f)
 
 (set! get-pressed-scene
-  (let* ((up (bitmap "up.bmp"))
-        (down (bitmap "down.bmp"))
-        (left (bitmap "left.bmp"))
-        (right (bitmap "right.bmp"))
-        (press (bitmap "press.bmp"))
+  (let* ((up (image "up.bmp"))
+        (down (image "down.bmp"))
+        (left (image "left.bmp"))
+        (right (image "right.bmp"))
+        (press (image "press.bmp"))
         (actived press))
     (lambda ()
       (if (any-key-down?)
@@ -43,8 +43,6 @@
                 (set! actived press))))
       actived)))
 
-(define press (bitmap "press.bmp"))
-
 (display-scene
  (window ((resolution '(640 480)))
    (lambda ()
index e23daef7eb29dbb4985a9f14ddf9f6865e2f6843..6676e1da324d7115547991d37082e562a8a393c6 100644 (file)
@@ -21,6 +21,6 @@
 
 (display-scene
  (window ((resolution '(640 480)))
-   (stretch
-    (bitmap "stretch.bmp")
+   (scale
+    (image "stretch.bmp")
     2)))
diff --git a/examples/05-animations/05-animations.scm b/examples/05-animations/05-animations.scm
new file mode 100644 (file)
index 0000000..eea8812
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/env guile
+!#
+
+;;; Gacela, a GNU Guile extension for fast games development
+;;; Copyright (C) 2017 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/>.
+
+(use-modules (gacela))
+
+(define (tick) (* 3000000 (get-internal-real-time)))
+(define (waggle) (* 200 (cos (* pi (tick)))))
+(define (wiggle) (* 300 (sin (* pi (tick)))))
+
+(display-scene
+ (window ((resolution '(640 480)))
+   (move (image "homer.png")
+         wiggle 0)))
+
+(display-scene
+ (window ((resolution '(640 480)))
+   (move (image "marge.png")
+         0 waggle)))
diff --git a/examples/05-animations/homer.png b/examples/05-animations/homer.png
new file mode 100644 (file)
index 0000000..485e01e
Binary files /dev/null and b/examples/05-animations/homer.png differ
diff --git a/examples/05-animations/marge.png b/examples/05-animations/marge.png
new file mode 100644 (file)
index 0000000..576092b
Binary files /dev/null and b/examples/05-animations/marge.png differ
index 1fa861f09b440746c45c3a11d82dfa3d4352f3a1..e6c8f4ef74a38fbf24a59213656ec51d8645facf 100644 (file)
   #:use-module ((sdl2 render) #:prefix sdl2:)
   #:use-module ((sdl2 surface) #:prefix sdl2:)
   #:use-module (gl)
-  #:export (bitmap
-            move-xy
-            stretch))
+  #:export (image
+            move
+            scale))
 
-(define (bitmap filename)
+(define (calculate proc-or-value)
+  (if (procedure? proc-or-value)
+      (proc-or-value)
+      proc-or-value))
+
+(define (image filename)
   (make-scene
-   "bitmap"
+   "image"
    (let ((image (sdl2:load-image filename))
          (texture #f)
          (w/2 0)
          (gl-vertex (- w/2) (- h/2) 0))
        (gl-disable (oes-framebuffer-object texture-2d))))))
 
-(define (move-xy x y scene)
-  (define (to-integer n)
-    (inexact->exact (round n)))
+(define* (move scene x y #:optional (z 0))
   (make-scene
-   "move-xy"
+   "move"
    (lambda ()
-     (let ((xy (list (to-integer (if (procedure? x) (x) x))
-                     (to-integer (if (procedure? y) (y) y)))))
-       (display-scene scene #:xy xy)))))
+     (gl-translate (calculate x)
+                   (calculate y)
+                   (calculate z))
+     (display-scene scene))))
 
-(define* (stretch scene x #:optional (y x) (z y))
+(define* (scale scene x #:optional (y x) (z y))
   (make-scene
-   "stretch"
+   "scale"
    (lambda ()
      (gl-scale x y z)
      (display-scene scene))))