summaryrefslogtreecommitdiff
path: root/2d/keyboard.scm
diff options
context:
space:
mode:
Diffstat (limited to '2d/keyboard.scm')
-rw-r--r--2d/keyboard.scm88
1 files changed, 0 insertions, 88 deletions
diff --git a/2d/keyboard.scm b/2d/keyboard.scm
deleted file mode 100644
index 97bc20a..0000000
--- a/2d/keyboard.scm
+++ /dev/null
@@ -1,88 +0,0 @@
-;;; guile-2d
-;;; Copyright (C) 2013, 2014 David Thompson <dthompson2@worcester.edu>
-;;;
-;;; 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/>.
-
-;;; Commentary:
-;;
-;; Keyboard signals.
-;;
-;;; Code:
-
-(define-module (2d keyboard)
- #:use-module ((sdl sdl) #:prefix SDL:)
- #:use-module (2d event)
- #:use-module (2d signal)
- #:use-module (2d vector)
- #:export (key-press-hook
- key-release-hook
- key-last-down
- key-last-up
- key-down?
- key-directions
- key-arrows
- key-wasd))
-
-(define key-press-hook (make-hook 2))
-
-(register-event-handler
- 'key-down
- (lambda (e)
- (run-hook key-press-hook
- (SDL:event:key:keysym:sym e)
- (SDL:event:key:keysym:unicode e))))
-
-(define-signal key-last-down
- (hook->signal key-press-hook 'none
- (lambda (key unicode)
- key)))
-
-(define key-release-hook (make-hook 2))
-
-(register-event-handler
- 'key-up
- (lambda (e)
- (run-hook key-release-hook
- (SDL:event:key:keysym:sym e)
- (SDL:event:key:keysym:unicode e))))
-
-(define-signal key-last-up
- (hook->signal key-release-hook 'none
- (lambda (key unicode)
- key)))
-
-(define (key-down? key)
- "Create a signal for the state of KEY. The signal value is #t when
-KEY is pressed or #f otherwise."
- (define (same-key? other-key)
- (eq? key other-key))
- (define (key-filter value signal)
- (signal-constant value (signal-filter same-key? #f signal)))
- (signal-merge (key-filter #f key-last-up)
- (key-filter #t key-last-down)))
-
-(define (key-directions up down left right)
- (signal-map (lambda (up? down? left? right?)
- (vector (+ (if left? -1 0)
- (if right? 1 0))
- (+ (if up? -1 0)
- (if down? 1 0))))
- (key-down? up)
- (key-down? down)
- (key-down? left)
- (key-down? right)))
-
-(define-signal key-arrows (key-directions 'up 'down 'left 'right))
-(define-signal key-wasd (key-directions 'w 's 'a 'd))