2

簡単なはずですが、見つけられません...

私の世界にはたくさんのスプライトがあり、X の瞬間に複数のスプライトを破壊する必要があります。

以下のコードを使用すると、タグ番号でこのスプライトを削除できます。

CCSprite *sprite = (CCSprite *)[self getChildByTag:TagFromMyArray];
[self removeChild:sprite cleanup:YES];

問題は、画面に残っているボディです...そして次のティックでゲームをクラッシュさせます。

以下のコードを使用すると、「ボディ」を見つけることができます。

for(b2Body *b = world->GetBodyList(); b; b=b->GetNext()) {
        if (b->GetUserData() != NULL) {
            CCSprite *sprite = (CCSprite *)b->GetUserData();
            if (sprite.tag = [[[myGrille.grille objectAtIndex:point.x] objectAtIndex:point.y]blockTag]) {
                [self removeChild:sprite cleanup:YES];
                world->DestroyBody(b);
            }
        }
    }

問題は、世界中のすべての体を削除することです。

ba はユニークなボディへの参照ではありませんか?

4

1 に答える 1

1

私は何時間もこの周りにいました、そしてそれは小さなエラーでした...

最後のif条件で"="を"=="に置き換える必要があります。

于 2013-01-24T14:38:03.647 に答える