// RIGHT BUTTON
Button btnRight = (Button) findViewById(R.id.btnRight);
btnRight.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
API_send_movement("move_right");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
API_send_movement("stop_right");
}
return false; // This will enable players to drag their finger
}
});
目的:让玩家将手指向上、向左和向右拖过一些按钮。这就是它返回 false 的原因。
效果很好!
问题:我如何“限制”这个?目前它每刻发送一个信号,需要放慢速度,比如每 0.5 秒一次。
最佳答案
一个简单的方法是设置一个long lastCall;
变量来存储最后一次API_send_movement("move_right");
被调用的时间,如果有时间差则立即返回不够大。沿线的东西:
// RIGHT BUTTON
Button btnRight = (Button) findViewById(R.id.btnRight);
btnRight.setOnTouchListener(new OnTouchListener() {
long lastCall;
@Override
public boolean onTouch(View v, MotionEvent event) {
if(lastCall + 500 > System.currentTimeMillis()) {
return false;
}
lastCall = System.currentTimeMillis();
if(event.getAction() == MotionEvent.ACTION_DOWN) {
API_send_movement("move_right");
} else if (event.getAction() == MotionEvent.ACTION_UP) {
API_send_movement("stop_right");
}
return false; // This will enable players to drag their finger
}
});
关于android - 按住按钮时限速功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27632119/