完全点击事件是一个向下和向上的按钮,据我所知,没有鼠标移动. SDL仅向我提供按钮向上和向下事件.
reactive-banana
有没有办法表达“按键然后按键”?
顺便说一句,如果我想要一个“key not down”的事件,我必须启用SDL的enableKeyRepeat,以便再次触发keyDown事件.如何在FRP中正确表达?
最佳答案 我会尝试这样的事情:
定义效用函数(未测试):
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).
这应该有效,因为在事件触发后行为会略有更新.