Cocos2d box2d断言失败

时间:2013-06-19 20:10:45

标签: cocos2d-iphone xcode4.5 box2d

这是我的第一个box2d游戏,我目前正在关注Ray Wenderlich碰撞检测教程之一,但是在下面的代码片段中,我收到错误说“断言失败:(IsLocked()== false),函数CreateBody” 。我已经研究了错误并知道了问题,但没有解决方案。有人有解决方案吗?

- (void)addBoxBodyForSprite:(CCSprite *)sprite {
b2BodyDef spriteBodyDef;
spriteBodyDef.type = b2_dynamicBody;
spriteBodyDef.position.Set(sprite.position.x/PTM_RATIO, sprite.position.y/PTM_RATIO);
spriteBodyDef.userData = sprite;
b2Body *spriteBody = _world->CreateBody(&spriteBodyDef);
b2PolygonShape spriteShape;

1 个答案:

答案 0 :(得分:1)

正如我提到的here,你无法在Step函数执行期间创建实体。您必须存储在某处创建主体所需的信息,并在以后使用它(在Step退出后)来创建主体