在碰撞后延迟破坏box2d体



这是重新提问

我想在碰撞后摧毁尸体,但要延迟4-6秒。我成功地检测了碰撞& &;碰撞后身体的破坏但现在我想要一个延迟。

我不知道如何延迟。

创建一个以B2Body为参数的函数,并以delay方式调用该函数

这样调用函数:

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);
}

最新更新