[Haskell-beginners] firering event in netwire
Nathan Hüsken
nathan.huesken at posteo.de
Mon Oct 1 13:31:04 CEST 2012
On 09/30/2012 05:39 AM, Ertugrul Söylemez wrote:
> However, I rather recommend against passing multiple SDL events at once.
> Wires can handle individual events much better and, when properly
> designed, also faster.
Ok, so I update my wire on every event I receive. That way I only have
one event for every wire update.
Now I want my state updates frame based, not time based. I am trying to
update the state based on the NoEvent event (the main look takes care
that this happens in an constant interval).
I have an Event Wire
isKeyPressed code :: EventP SDL.Event"
which produces when the key is pressed and inhibits when it is not pressed.
speed = (((pure (-1.0)) . isKeyPressed leftKeyCode) <|> pure 0.0)
+
(((pure 1.0) . isKeyPressed rightKeyCode) <|> pure 0.0)
So speed is -1 if the left key is pressed, +1 if the right key is
pressed and 0 if none or both are pressed.
Now I want to integrate this speed (frame based):
pos = accum (+) . speed
But this does not do the accumulation every frame, but whenever an event
happens.
So I would need a "require (==NoEvent)" somewhere. But I do not see
where I could put it to archive the desired behavior.
I am not sure if I am using netwire correctly.
Thanks & Regards,
Nathan
More information about the Beginners
mailing list