4 ;;; Gacela, a GNU Guile extension for fast games development
5 ;;; Copyright (C) 2017 by Javier Sancho Fernandez <jsf at jsancho dot org>
7 ;;; This program is free software: you can redistribute it and/or modify
8 ;;; it under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation, either version 3 of the License, or
10 ;;; (at your option) any later version.
12 ;;; This program is distributed in the hope that it will be useful,
13 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
20 (use-modules (gacela))
22 (define (tick) (* 3000000 (get-internal-real-time)))
23 (define (waggle) (* 200 (cos (* pi (tick)))))
24 (define (wiggle) (* 300 (sin (* pi (tick)))))
25 (define (swaggle) (cos (* pi (tick))))
26 (define (swiggle) (sin (* pi (tick))))
28 (define homer (image "homer.png"))
29 (define marge (image "marge.png"))
31 (define (hv-dance image1 image2)
32 (over (move image1 wiggle 0)
33 (move image2 0 waggle)))
35 (define homer-marge-dance
36 (hv-dance homer marge))
39 (window ((resolution '(640 480)))
43 (window ((resolution '(640 480)))
44 (let ((small (scale homer-marge-dance 0.5)))
45 (hv-dance small small))))
48 (window ((resolution '(640 480)))
49 (scale homer-marge-dance (lambda () (abs (swiggle))))))
52 (window ((resolution '(640 480)))
53 (hv-dance (scale homer swiggle)
54 (scale marge swaggle))))
57 (window ((resolution '(640 480)))
58 (over (scale homer swiggle)
59 (move marge wiggle waggle))))