diff options
author | David Thompson <dthompson@member.fsf.org> | 2013-12-01 10:06:19 -0500 |
---|---|---|
committer | David Thompson <dthompson@member.fsf.org> | 2013-12-01 10:06:19 -0500 |
commit | 6cd84e2f0bb6a08fddbf1a9cce31fd1192f1f248 (patch) | |
tree | 61341aa7a3274a26cd38730ab7c3696b4e27fd1f | |
parent | ee4c0fc7438b4eb30957a4f32eb72d19c079709d (diff) |
Add arrows signal.
* 2d/game.scm (arrows): New signal.
-rw-r--r-- | 2d/game.scm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/2d/game.scm b/2d/game.scm index 72980fd..c2ad0bc 100644 --- a/2d/game.scm +++ b/2d/game.scm @@ -43,6 +43,7 @@ window-size key-last-pressed key-down? + arrows mouse-position mouse-down? current-fps)) @@ -194,6 +195,17 @@ time in milliseconds that has passed since the last game update." "Return a signal for BUTTON." (signal-hash-ref mouse-signals button)) +(define arrows (signal-lift4 (lambda (up? down? left? right?) + (let ((up (if up? -1 0)) + (down (if down? 1 0)) + (left (if left? -1 0)) + (right (if right? 1 0))) + (vector2 (+ left right) (+ up down)))) + (key-down? 'up) + (key-down? 'down) + (key-down? 'left) + (key-down? 'right))) + (define (handle-event e) "Call the relevant callbacks for the event E." (case (SDL:event:type e) |