Android 成功分离sprite后仍将调用OnAreTouch
这是我在场景中添加精灵的代码Android 成功分离sprite后仍将调用OnAreTouch,android,opengl-es-2.0,sprite,andengine,Android,Opengl Es 2.0,Sprite,Andengine,这是我在场景中添加精灵的代码 for (int i = 3; i <= cage.getDirtMeter(); i++) { Sprite dirtSprite = new Sprite(0, 0, Main.dirtTextureRegion, mainActivity.getVertexBufferObjectManager()) { @Override public boolea
for (int i = 3; i <= cage.getDirtMeter(); i++) {
Sprite dirtSprite = new Sprite(0, 0, Main.dirtTextureRegion,
mainActivity.getVertexBufferObjectManager()) {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
removeDirt(this);
return true;
}
};
float x = Utility.getRandomXWithinCamera(dirtSprite);
float y = Utility.getRandomYWithinCamera(dirtSprite);
dirtSprite.setPosition(x, y);
this.registerTouchArea(dirtSprite);
attachChild(dirtSprite);
}
removeDirt被称为sprite后,屏幕上看不到sprite,但ReatTouch上的sprites仍被称为sprites,即使sprites已成功脱离连接。知道如何从场景中完全移除精灵吗。谢谢我也试过了
sprite.setVisible(false);
sprite.clearEntityModifiers();
sprite.setIgnoreUpdate(true);
sprite.clearUpdateHandlers();
sprite.reset();
sprite.detachSelf();
但是在那之后,仍然会调用OnAreTouch。您需要从场景中注销精灵的触摸区域。 乙二醇
您需要从场景中注销精灵的触摸区域。 乙二醇 工作起来很有魅力:)。非常感谢。工作起来很有魅力:)。非常感谢。
sprite.setVisible(false);
sprite.clearEntityModifiers();
sprite.setIgnoreUpdate(true);
sprite.clearUpdateHandlers();
sprite.reset();
sprite.detachSelf();
yourScene.unregisterTouchArea(yourSprite);