如何在 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;
}
});
关于java - 在 isActionMove() 上执行单点触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16912806/