]> git.jsancho.org Git - gacela.git/blob - examples/02-event-driven-programming/02-event-driven-programming.scm
Customizing quit event behaviour
[gacela.git] / examples / 02-event-driven-programming / 02-event-driven-programming.scm
1 #!/usr/bin/env guile
2 !#
3
4 ;;; Gacela, a GNU Guile extension for fast games development
5 ;;; Copyright (C) 2017 by Javier Sancho Fernandez <jsf at jsancho dot org>
6 ;;;
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.
11 ;;;
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.
16 ;;;
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/>.
19
20 (use-modules (gacela))
21
22 (define counter-quit #f)
23 (let ((n 0))
24   (set! counter-quit
25     (lambda ()
26       (set! n (+ n 1))
27       (format #t "Quit clicked ~a times !!~%" n)
28       (if (> n 2)
29           (stop-game)))))
30
31 (display-scene
32  (window ((resolution '(640 480))
33           (when-quit counter-quit))
34    (bitmap "x.bmp")))