从cocos2d sprite中删除b2body

时间:2013-08-30 06:13:17

标签: objective-c cocos2d-iphone box2d-iphone

有没有办法删除与精灵相关的b2body?精灵应出现在屏幕上,但没有物理。

我正在使用cocos2d Box2d。

1 个答案:

答案 0 :(得分:1)

我们将sprite作为b2body的userdata。因此,如果你想删除具有特定精灵的身体作为用户数据,那么你必须遍历世界上当前存在的所有身体,然后逐一与它们进行比较,如果你找到它然后删除相应的身体。 假设您要删除与CCSprite * temp;

对应的主体
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {
if (b->GetUserData() != NULL) {
            CCSprite *sprite = (CCSprite *)b->GetUserData();     
            if (sprite==temp) {
               world->destroyBody(b);
               break;
            }
}