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);