2013-10-18 86 views
0

我写了一些壁纸。它代表掉落的许多精灵。当它飞出屏幕时,我想将它们从场景中分离出来。我怎样才能做到最佳? 现在我用这个代码:Andengine + Box2d。删除精灵,当它不可见用户

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

    } 
} 

但它不是正确的方式。什么是最好的解决方案?

回答

0

您可以在Sprite对象上启用剔除。这种方式在屏幕不显示时不会渲染。