我有一些可以成长的 body 。我将这个 body 添加到世界中。
...
someBody = world->CreateBody(&bodyDef);
someFixture = tapBody->CreateFixture(&someFixtureDef);
...
我想我不需要在这里粘贴所有代码。
所以我给世界添加了 body 。问题是如何改变位置,恢复原状……已经在世界上的 body ?我可以在这里这样做吗? (因为当我尝试更改 tick
方法中的某些内容时出现错误)。
-(void) tick: (ccTime) dt
{
world->Step(dt, velocityIterations, positionIterations);
for (b2Body* b = world->GetBodyList(); b; b = b->GetNext())
{
}
}
最佳答案
也许您可以通过销毁并创建一个新的夹具来完成您需要的,而不是销毁并重新创建整个主体...
for (b2Body* b = world->GetBodyList(); b; b = b->GetNext())
{
// This assumes you only have one fixture
b2Fixture* f = b->GetFixtureList();
f = f->GetNext();
// Code here to create a new fixture/shape with different size (or whatever)
// Destory old fixture and create new one
b->DestoryFixture(f);
b2Fixture* someFixture = b->CreateFixture(&someFixtureDef);
}
抱歉有任何打字错误......还没有测试过任何......
关于objective-c - 如何手动改变 body 的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352068/