X-Git-Url: https://git.jsancho.org/?p=gacela.git;a=blobdiff_plain;f=examples%2F03-key-presses%2F03-key-presses.scm;fp=examples%2F03-key-presses%2F03-key-presses.scm;h=06fa1868ab8c1e8271646eb30e6de8b36293f399;hp=0000000000000000000000000000000000000000;hb=39f20a9681fa52e854678fe5acb5b10e3244c1cd;hpb=cacab3e249f7706c33498a105be22e8447d14e64 diff --git a/examples/03-key-presses/03-key-presses.scm b/examples/03-key-presses/03-key-presses.scm new file mode 100644 index 0000000..06fa186 --- /dev/null +++ b/examples/03-key-presses/03-key-presses.scm @@ -0,0 +1,51 @@ +#!/usr/bin/env guile +!# + +;;; Gacela, a GNU Guile extension for fast games development +;;; Copyright (C) 2017 by Javier Sancho Fernandez +;;; +;;; 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 . + +(use-modules (gacela)) + + +(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")) + (actived press)) + (lambda () + (if (any-key-down?) + (cond ((key-down? 'up) + (set! actived up)) + ((key-down? 'down) + (set! actived down)) + ((key-down? 'left) + (set! actived left)) + ((key-down? 'right) + (set! actived right)) + (else + (set! actived press)))) + actived))) + +(define press (bitmap "press.bmp")) + +(display-scene + (window ((resolution '(640 480))) + (lambda () + (display-scene (get-pressed-scene)))))