如何在isActionMove()上执行单点触摸,因为当我在Sprite上移动手指时,它会发生多点触摸事件并两次将分数更新两次

mHardware[active] = new Sprite(pX, pY, java, this.getVertexBufferObjectManager()) {

    @Override
    public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float X, float Y) {
        if (pSceneTouchEvent.isActionMove()) {
            score++;
        }
    }
};


我不能使用isActionDown,因为它像水果忍者一样需要在屏幕上移动手指的游戏
现在的问题是分数有时会增加2有时会增加3,因为当我在Sprite应用程序上移动手指时,注意到几个短小的动作代替了一个

最佳答案

你应该使用

private static boolean isFirstMove;
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float X, float Y) {
    if (pSceneTouchEvent.isActionDown()) {
       isFirstMove = true;
    }
    if (pSceneTouchEvent.isActionMove()) {
        if(isFirstMove) {
            score++;
            isFirstMove = false;
        }
    }
    if (pSceneTouchEvent.isActionUp()) {
        isFirstMove = false;
    }
});

07-22 20:50