与延迟相撞后摧毁box2d体

时间:2013-05-24 04:57:45

标签: cocos2d-iphone box2d-iphone

这是重新提问

我想在碰撞后摧毁尸体但延迟4-6秒。 我成功地发现了碰撞和碰撞碰撞后破坏了身体,但现在我想延迟它。

我不知道如何延迟。

1 个答案:

答案 0 :(得分:0)

Make One函数将B2Body作为参数并以延迟方式调用该函数。

这样调用函数:

std::vector<b2Body *>::iterator pos; 
for(pos = bodyToDestroy.begin();pos != bodyToDestroy.end(); ++pos){ 
b2Body *body = *pos; 
if(body->GetUserData() != NULL){ 
CCPhysicsSprite *sprite = (CCPhysicsSprite *) body->GetUserData(); 
[sprite removeFromParentAndCleanup:YES];
} 
[self performSelector:@selector(myfunc) withObject:body afterDelay:4.0]; 
}

并且该功能将是

-(void)myfunc : (b2Body *)body{
    world->destroyBody(body);
}