据我所知,完全点击事件是一个向下和向上的按钮,没有鼠标移动。 SDL只给我按钮向上和向下事件。
reactive-banana
有没有办法表达“按键然后按键”?
顺便说一句,如果我想要一个“密钥仍然关闭”的事件,我必须启用SDL的enableKeyRepeat
,以便再次触发keyDown事件。如何在FRP中正确表达?
答案 0 :(得分:2)
我会尝试这样的事情:
定义效用函数(未经测试):
successive :: (a -> a -> Maybe b) -> Event t a -> Event t b
successive f e = filterJust (b <@> e)
where b = stepper (const Nothing) (f <$> e)
然后使用类似
的内容successive (\previous current -> if previous == buttonDown && current == buttonUp
then Just ()
else Nothing)
buttonEvents
(伪代码,因为我不熟悉SDL)。
这应该有效,因为在事件触发后行为会略有更新。