Android游戏开发:Handler / Runnable不重复动作

时间:2014-11-17 05:28:42

标签: java android eclipse handler runnable

我在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;
}

向下是使角色向下移动的触摸区域。我的代码有什么问题,或者我该怎么做才能修复它并使其更好?

谢谢。

0 个答案:

没有答案