フル クリック イベントは、私の知る限り、マウスの動きを伴わないボタンの上下です。SDL は、Button Up および Down イベントのみを提供します。
reactive-banana
「キーダウンしてからキーアップ」を表現する方法はありますか?
ちなみに、「キーがまだ押されている」というイベントが必要な場合は、SDL を有効にしenableKeyRepeat
て、keyDown イベントが再度発生するようにする必要があります。それをFRPで正しく表現するには?
フル クリック イベントは、私の知る限り、マウスの動きを伴わないボタンの上下です。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に慣れていないため、疑似コードです)。
イベントが発生した後に動作が部分的に更新されるため、これは機能するはずです。