4

フル クリック イベントは、私の知る限り、マウスの動きを伴わないボタンの上下です。SDL は、Button Up および Down イベントのみを提供します。

reactive-banana「キーダウンしてからキーアップ」を表現する方法はありますか?

ちなみに、「キーがまだ押されている」というイベントが必要な場合は、SDL を有効にしenableKeyRepeatて、keyDown イベントが再度発生するようにする必要があります。それをFRPで正しく表現するには?

4

1 に答える 1

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に慣れていないため、疑似コードです)。

イベントが発生した後に動作が部分的に更新されるため、これは機能するはずです。

于 2012-06-19T14:12:46.570 に答える