在 cocos2d 中创建物理体物理、cocos2d

2023-09-07 08:48:44 作者:花满锦、官城

我正在 box2d 中创建物理身体,如下所示,这是我的代码

I am creating the physical body in box2d as below , this si my code

 b2BodyDef carBodyDef;
carBodyDef.position.Set(x/PTM_RATIO,y/PTM_RATIO);
carBodyDef.type=b2_dynamicBody;    b2Body* carBody=physicsWorld->CreateBody(&carBodyDef);

b2CircleShape carShape;
carShape.m_radius=rad/40.0f;


b2FixtureDef carFixture;
carFixture.shape=&carShape;
carFixture.density = 1.0f;
carFixture.friction = 0.0f;

carBody->CreateFixture(&carFixture);

return carBody ;

当我运行应用程序时,它会崩溃,有以下错误*断言失败:(IsLocked() == false),函数 CreateBody,*in box2d

When am running the app, its getting crash , with the below erro *Assertion failed: (IsLocked() == false), function CreateBody,*in box2d

推荐答案

那是因为你在执行 b2WorldStep() 函数时创建了你的 body.执行此函数时无法创建新实体

That's because you are creating your body during execution of Step() function of b2World. You can't create new bodies while this function is executing