サイトのトップへ戻る

AndEngineドキュメント 日本語訳

Body を完全に削除する:

場合によっては、body を完全に削除したい場合があります。update スレッドを使わずに誤って削除を行うと、エラーやクラッシュを引き起こします。 つまり、Bodyを安全に削除したい場合はupdate スレッド内で削除してください。以下が例になります:
mEngine.runOnUpdateThread(new Runnable()
{
    @Override
    public void run()
    {
        // Detete objects safely here.
    }  
}


1. body およびその shapeを完全に削除する:
削除するには、まずPhysicsConnectorが必要で、それからbody とそのshapeを削除します。例:
final PhysicsConnector physicsConnector =
physicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(shape);

mEngine.runOnUpdateThread(new Runnable() 
{
    @Override
    public void run() 
    {
        if (physicsConnector != null)
        {
             physicsWorld.unregisterPhysicsConnector(physicsConnector);
             body.setActive(false);
             physicsWorld.destroyBody(bbody);
             scene.detachChild(shape);
        }
    }
});