好的,所以在业余时间创建游戏时,我在尝试围绕以下场景编写代码时完全陷入困境:
我想捕获点击事件(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 函数,我的动作就会不断触发。任何关于如何更好地实现这一点的想法将不胜感激。