0

我写了一些壁纸。它代表了许多倒下的精灵。当它飞出屏幕时,我想将它们从场景中分离出来。我怎样才能以最佳方式做到这一点?现在我使用这段代码:

for (int i = 0; i < getScene().getChildCount(); i++) {
    if (i < getScene().getChildCount())
        removeSprite((Sprite) getScene().getChildByIndex(i));
}

private boolean removeSprite(final Sprite sprite) {
    if ((sprite.getX()>CAMERA_WIDTH+sprite.getWidth()*2 || sprite.getX()<-sprite.getWidth()*2) && (sprite.getY()>CAMERA_HEIGHT+sprite.getHeight()*2 || sprite.getY()<0-sprite.getWidth()*2)) {
        final PhysicsConnector spritePhysicsConnector = physicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(sprite);

        physicsWorld.unregisterPhysicsConnector(spritePhysicsConnector);
        physicsWorld.destroyBody(spritePhysicsConnector.getBody());

        getScene().unregisterTouchArea(sprite);
        getScene().detachChild(sprite);

    } 
}

但它不是正确的方法。存在哪些最佳解决方案?

4

1 回答 1

0

您可以在 Sprite 对象上启用剔除。这样当它离开屏幕时它就不会被渲染。

于 2013-10-21T14:59:44.003 回答