所以在我的游戏中,我的视图得出了不一致的费率。这反过来又使它变得很糟糕。我曾经遇到过很多与invalidate()有关的问题; meathod。任何简单的想法 - 无处不在我看起来被大量强烈的代码抛弃了。
答案 0 :(得分:2)
您没有向我们提供太多信息,特别是代码。
你可以做的一些事情是:
[编辑于2012-08-27]
用于修复时间步的有用链接:http://gafferongames.com/game-physics/fix-your-timestep/
答案 1 :(得分:1)
听起来你的游戏循环没有考虑迭代之间经过的实际时间。
问题是假设循环迭代之间存在固定的时间量。但是这个时间可以变化,具体取决于场景中的对象数量,计算机上的其他进程,甚至是计算机本身。
这在游戏编程中是一个常见的,有点微妙的错误,但它很容易被纠正。诀窍是在每个绘制循环结束时存储时间,然后将最后一次更新的差异与开始时的当前时间进行比较。然后,您应该根据实际经过的时间缩放所有动画和游戏更改。
我在博客上写了更多关于此内容的文章:http://laststop.spaceislimited.org/2008/05/17/programming-a-pong-clone-in-c-and-opengl-part-i/
第二部分专门讨论了这个问题: http://laststop.spaceislimited.org/2008/06/02/programming-pong-in-c-and-opengl-part-ii/