0

b2body の配列を設定しました。次の方法を使用します。

-(void)populateBodiesToDestroy:(b2Body*)body   {

NSValue *bodyValue = [NSValue valueWithPointer:body];
[bodiesArray addObject:bodyValue];

}

それぞれの体は互いに結合されて鎖を形成しています。上記の方法を使用して、配列にデータを入力しました。HelloWorldLayer で Sprite クラス内の次のメソッドを 1/60 秒ごとに更新して、ボディを破棄し、それらの CCPhysicsSprites を削除します。

-(void)updateBodies    {
if (bodiesArray) {
        for (int i = 0; i < bodiesArray.count; i++) {
            b2Body *removeLinkBody = (b2Body*) [[bodiesArray objectAtIndex:i] pointerValue];
            bWorld->DestroyBody(removeLinkBody); //signal SIGABRT happens here
            removeLinkBody = NULL;
            [self removeChildByTag:10 + i];
         }
    }
} 

私はライン上でシグナル SIGABRT を受け取り続けます:

bWorld->DestroyBody(removeLinkBody); //signal SIGABRT happens here

チェーンもフリーズします。すべてのボディまたは一部のボディが破壊されたかどうかはわかりませんが、表示されているのは CCPhyscisSprites だけです。どうすればこれを解決できますか?

4

1 に答える 1