0

这是我的第一个 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;
4

1 回答 1

2

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

于 2013-06-20T05:04:00.980 回答