« 吉里吉里の何がいいのか? | メイン | OS機能を利用してH.264を再生する場合のライセンスを確認する »

2014年02月16日

吉里吉里Z 開発:: マウスとタッチ速度計測

    

dev_velocity_tracking ブランチにマウスとタッチ速度計測機能を入れた。
まだテスト中。

フリックイベントなどを追加するのではなく、速度が得られる形での実装。
フリックは、タッチが離された時に速度が一定以上ならフリック、つまり velocity > X で判定可能。
慣性スクロールは、タッチが離された時の速度でスクロール維持し、次第に減速する形で実装可能。
そのほか速度が得られると何かと便利な場面がある。
単純にフリックイベントを実装するよりも使いやすいはず。

メソッドは Window.getMouseVelocity/Window.getTouchVelocity での速度取得と Window.resetMouseVelocity でのマウス計測リセット。
マウスは、ウィンドウ内に入った時から速度計測しているので、任意タイミングから測りたい場合にリセットメソッドがある。
タッチは押されてから、離されるまでの間で計測するのでリセットはない。
タッチの場合は、一連のタッチの ID を指定して取得するので、タッチが離されたイベントのメソッド呼び出しが終了すると消えてしまうので注意が必要。
取得可能になるのも ID が確定する押されてから。
速度は pixel / sec 。

タッチのみでもいいが、マウスもついでに入れた。
球を投げると言った動作をマウスでするなど出来る。

速度計測と言っても、普段は押下された位置と時間を記録しているだけで、取得のタイミングで速度計算しているので、普段の負荷は小さい。
ログはリングバッファなので、一定間隔以上は記録されない。
計算アルゴリズムは Android にあるものの1つでソースコードを持ってきて、吉里吉里Zに合う用に書き換えたもの。



投稿者 Takenori : 2014年02月16日 20:21




comments powered by Disqus
Total : Today : Yesterday : なかのひと