gpt4 book ai didi

haskell - 带有 Reactive-banana 和 SDL 的完整点击/按键事件

转载 作者:行者123 更新时间:2023-12-01 04:03:41 24 4
gpt4 key购买 nike

据我所知,一个完整的点击事件是一个向下和向上的按钮,没有鼠标移动。 SDL 只给我 Button Up 和 Down 事件。

是否 reactive-banana 有什么方法可以表达“按下键然后按下键”?

顺便说一句,如果我想要一个显示“键仍然关闭”的事件,我必须启用 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)。

这应该有效,因为在事件触发后行为会部分更新。

关于haskell - 带有 Reactive-banana 和 SDL 的完整点击/按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com