さて、暇なときにゲームを作成する際に、次のシナリオを回避してコーディングしようとすると、完全に行き詰まりました。
タップイベント(TouchEvent.ACTION_DOWN
)をキャプチャしてから、500ミリ秒間隔で、画面がまだ押されているかどうかを確認し、同じアクションを無限に繰り返します。
だから、私は始めました:
switch (myTouchHandler.getAction()) {
case (TouchEvent.ACTION_DOWN):
case (TouchEvent.ACTION_MOVE):
if (inputIntervalTooSoon()) return true;
//do the magic i intend to do....
}
....
private boolean inputIntervalTooSoon() {
final long now = System.currentTimeMillis();
if ((now - lastTouchEventTime) < 500) return false;
lastTouchEventTime = now;
return true;
これにより、500ミリ秒待機するという効果が得られますが、指がまだ下にあるかどうかはすぐには検出されません。指を少し動かすとまた拾い上げて休眠状態に戻ります。
Interval関数を含めないと、アクションは常に実行されます。これをより適切に実装する方法についてのアイデアをいただければ幸いです。