2011-07-03 57 views
1

我创建了一个480x320的小型简单世界。 我刚刚实现了平滑滚动,但我一直注意到的一个问题是,它几次结结巴巴。 我想我知道它为什么会口吃,但没有意识到如何解决我的问题。 我没有在滚动计算中使用增量时间,因为它只会让我更加困惑。 增量值应该如何使用? 我通常会得到一个像我的delta时间一样的值。 我也将FPS限制设置为30FPS(准确的说是33),并且在我的所有测试中,帧频从未低于30。 我的滚动解决方案是通过TILE_SIZE(32)增加xPos值,并将camera.x值与xPos进行比较,并将camera.x增加或减少一定量(4)。 现在我不确定在这个例子中如何使用delta。 我试过了: SPEED * deltaTime =绝对不对; SPEED *(1 + deltaTime)=不正确; SPEED +/- deltaTime =更口吃;Android操作系统口吃滚动

我是否正确思考不使用德尔塔时间会导致口吃,如果有的话可以有人帮助我吗? 或者这完全是另一回事?

+0

我假设你所有的计算都是浮动或双右? – mibollma

+0

正确。实际上只是漂浮 – semajhan

+0

所以你的DELTA时间应该平均约0.03f假设33FPS。如果我们假设您的游戏每秒滚动单位(10),我们将使用POSITION = POSITION + UNIT * DELTA来计算当前位置......这有帮助吗?我不完全理解你的情况下xPos和camera.x是什么。 – mibollma

回答

0

您应该使用固定的时间步骤方法,以确保更一致的结果。

如果您还没有看过现在比较有名的“Fix your Timestep!”文章,我会建议你这样做。

干杯!