Box2d物理体与Cocos2d精灵不同步

时间:2012-10-25 06:16:44

标签: iphone ios cocos2d-iphone box2d

我对cocos2d和box2d相当新。我正在尝试使用加速度计创建一个游戏水平无尽的跑步者。我的角色从顶部掉下来,不断向下移动。我遇到的问题是加速精灵和物理体变得不同步,物理体离开精灵,从而导致碰撞的奇怪行为。这仅在设备上运行时发生,因为播放器不断向下移动,碰撞变得不垂直同步并且水平保持正确。 我的步骤功能是:

const float32 timeStep = 1.0f / 30.0f;
const int32 velocityIterations = 5;
const int32 positionIterations = 1;

// step the world
world->Step(timeStep, velocityIterations, positionIterations);

1 个答案:

答案 0 :(得分:0)

我们谈论的距离有多远?如果你将Box2D机身移动到很远的距离(数千个Box2D仪表),你可能会遇到物理模拟或cocos2d位置(或两者)的不准确,这可能会导致你描述的效果。

2D物理引擎并非设计用于没有约束的世界(即无限滚动)。如果这就是你正在做的事情,那么你将不得不想出一个解决方案,在这个问题上世界受到限制,但玩家却没有意识到这一点。常见的方法是在对象和关联视图通过某个阈值后将其重置回(约束)世界的顶部。大多数游戏只是将玩家锁定在适当的位置,而是将玩家移动到玩家的下方,给人留下无尽动感的印象,而只有背景才会移动。