Cocos2d + box2D从世界中删除精灵

时间:2013-01-24 14:05:08

标签: ios xcode cocos2d-iphone box2d

应该很容易,但我没有找到......

我的世界里有很多精灵,在片刻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);
            }
        }
    }

问题是它会移除世界上的每一具体。

不是指独特的身体吗?

1 个答案:

答案 0 :(得分:1)

我在这里待了几个小时,这是一个小错误......

只需在最后一个条件中将“=”替换为“==”。