From 6cd84e2f0bb6a08fddbf1a9cce31fd1192f1f248 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 1 Dec 2013 10:06:19 -0500 Subject: Add arrows signal. * 2d/game.scm (arrows): New signal. --- 2d/game.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to '2d/game.scm') 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) -- cgit v1.2.3