是否可以让游戏循环尽可能快地运行?目前我可以设置我想要的fps,因此在我的游戏将发送到的所有设备上具有恒定的fps。然而,在速度更快的移动设备上,拥有更流畅的图形会更好。我看了一下帧独立更新。当使用帧独立更新时,不需要暂停一段时间(以实现所需的fps)并且如果更新和渲染在游戏线程中花费很长时间,则不需要更新和不渲染?请把我弄清楚。
答案 0 :(得分:2)
我的经验(而且我并不孤单)是,这通常是一个坏主意:
我的建议是以一个合适的固定帧速率运行你的逻辑并尽可能经常渲染,尽管没有比你更新逻辑更频繁的渲染。如果有“空闲”时间,那就睡觉吧。用户的电池将会感谢您,并且用户不会想知道为什么他们的手机在玩游戏时会变得如此热门!
让它感觉顺畅的关键是确保逻辑更新的固定帧率足够高。事实是,高于特定帧率用户将不会注意到差异。高到多高将取决于游戏的确切性质,但30 fps对动作游戏来说相当普遍。用户可以看到移动/改变的速度越快,固定帧速率想要的越快 - 例如第一人称射击游戏总是希望获得比战略游戏更高的帧率。
您可以采用的另一个选项是创建逻辑“快照”,并在渲染时在它们之间进行插值。这是用于平滑多人游戏的常用技术,如here所述。与更新逻辑相比,它还使渲染更频繁!
编辑:希望澄清一些事情。
答案 1 :(得分:1)
您绝对不应对帧速率施加任何人为限制。尽可能快地跑。跟踪每帧所用的时间(使用增量),然后您可以使用它来准确计算下一帧相对于时间的状态。
答案 2 :(得分:0)
这是正确的。当您尽可能快地渲染时 - 您实际上是基于与当前时间成比例的值更新每个对象。
所以当你有一个旋转的立方体时 - 它每秒旋转X度而不是每帧X度。这将确保在不良机器上跳过中间框架并且立方体的旋转将显得不连贯。但是在好的机器上,你会看到平稳的旋转。