我正在使用cocos2d-x编写游戏,我遇到了这样的问题: 当精灵移动时,似乎它们有点弹跳......
在游戏中,物体从上到下以一定的速度下降。 所以这个对象被添加到CCNode上,我只改变它的Y位置,如下所示:
void GamePlayBase::updateParallax(float delta) {
parallaxNode->setPositionY(parallaxNode->getPositionY() - GameRunningSpeed * delta);
}
从更新函数调用(scheduleUpdate()); 此外,每台设备的fps总是60,但在iPhone 4或某些Android设备上deltaTime介于0.002到0.009之间。 我做了一些优化,如果屏幕上看不到对象,我会停用它的物理体并隐藏整个对象。
编辑: 我改变了视差更新以获得圆形位置:
parallaxNode->setPosition(ccp(parallaxNode->getPositionX(),
floor(parallaxNode->getPositionY() - GameRunningSpeed * delta + 0.5)));
并且还修正了时间步长:
void GamePlayBase::update(float dt)
{
static float ac = 0.0;
static float c = 1./60;
if (dt > c) {
ac += dt - c;
dt = c;
}else {
float t = c - dt;
t = min(t, ac);
ac -= t;
dt += t;
}
updateGameObjects(dt);
}
它几乎是固定的,但仍然有一点生涩的运动..