我在Android开发方面缺乏经验,但现在我正在尝试使用Eclipse中的Android工具开发游戏。这是一个简单的游戏。在屏幕上,我有用户触摸移动角色的区域。我使用Runnable / Handler尝试重复角色在与触摸区域对应的方向上移动的动作。但是,每当我触摸该区域时,它只会将角色向下移动一点。
这是我的代码。
private final Handler handler = new Handler();
private final Runnable runnable = new Runnable() {
public void run() {
protagonist.moveDown();
}
};
@Override
public boolean onTouchEvent(MotionEvent event) {
int touchX = (int)event.getX();
int touchY = (int)event.getY();
if(down.contains(touchX,touchY)) {
boolean mBooleanIsPressed = true;
if(event.getAction() == MotionEvent.ACTION_DOWN) {
handler.postDelayed(runnable, 500);
mBooleanIsPressed = true;
}
if(event.getAction() == MotionEvent.ACTION_UP) {
if(mBooleanIsPressed) {
mBooleanIsPressed = false;
handler.removeCallbacks(runnable);
}
}
}
return false;
}
向下是使角色向下移动的触摸区域。我的代码有什么问题,或者我该怎么做才能修复它并使其更好?
谢谢。