如何在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;
}
});