[Fluxus] Key events

Carlos Alegria ccristoo at gmail.com
Fri Jun 8 11:11:31 PDT 2012


Hi Kassen and Gabor, thanks a lot for your help.

Gabor,

Yes I am using fluxus from the Git repository. To have that included would
be great!!, and indeed, more general solution (and in fact, more like the
solution I was looking for). In fact I think it would be great to have an
OpenGL-like list of keys, each one for key-down, key-pressed, and
key-release events.

I am just beginning with fluxus/scheme and in general, functional
programming. I hope to be able to contribute to Fluxus code soon with this
kind of features.


Again, thanks a lot for your quick response.
Carlos

-----Original Message-----
From: gabor papp [mailto:gabor.lists at mndl.hu] 
Sent: viernes, 08 de junio de 2012 12:40
To: Carlos Alegria
Cc: 'Kassen'; 'gabor papp'; 'Fluxus'
Subject: RE: [Fluxus] Key events

hi Carlos,

> true in the frame where I press the space bar for the first time, but 
> also at some other frames after the first one, when the space bar is 
> pressed
yes, as Kassen already mentioned this is normal and comes from the keyboard
repeat.

> I took a look into modules/scheme/input.ss to try to implement this 
> behavior as you said, but as I am new to fluxus I would first get 
> familiar with its
sorry for bringing that solution up. it is probably too complex for this
problem. i thought you need callbacks on key presses.

> source code. Thus, I ended up implementing all using 
> (key-pressed-this-frame " "):
clever solution. as i see you are detecting key release.

are you using fluxus from git? maybe we should add a (key-released) function
which could make this simpler.

something like this would be more general for now:

(define PLAY #f)

(define key-released
     (let ([keys-down-last '()])
         (lambda (key)
             (let* ([keych (string-ref key 0)]
                    [released (and (member keych keys-down-last)
                                   (not (member keych (keys-down))))])
                 (set! keys-down-last (keys-down))
                 released))))


(define (render)
     (when (key-released " ")
         (set! PLAY (not PLAY)))
     (when PLAY
         ...))

(every-frame (render))

best,
gabor





More information about the Fluxus mailing list