可能重复:
What's the usual way of controlling frame rate?设置帧速率?这是一个好主意吗?
我是一个业余的,当涉及到编程,但我想请问,如果这是处理事情的有效方式。
现在,我的程序当前每一步都会自动更新,但我期待将程序分成更小的帧速率。我目前的想法是设置一个主时钟,在每30个时钟左右(例如),游戏会自动更新。但是,我期望在该时段结束时更新屏幕的时间内(例如,每隔10秒)分别更新程序的不同部分。我认为这将有助于缓解一些“压力”(假设有)。
可能重复:
What's the usual way of controlling frame rate?设置帧速率?这是一个好主意吗?
我是一个业余的,当涉及到编程,但我想请问,如果这是处理事情的有效方式。
现在,我的程序当前每一步都会自动更新,但我期待将程序分成更小的帧速率。我目前的想法是设置一个主时钟,在每30个时钟左右(例如),游戏会自动更新。但是,我期望在该时段结束时更新屏幕的时间内(例如,每隔10秒)分别更新程序的不同部分。我认为这将有助于缓解一些“压力”(假设有)。
我不会那样。它会变得更好/更容易/更干净,尤其是在开始时,尽可能频繁地更新游戏/屏幕(例如,将其置于一段时间(真实)循环中)。然后每次迭代,找出经过的时间并相应地使用它。 (例如,每移动一个对象1像素,每过去20ms)或其他东西
这是一个更好的起点,你会很难保证准确的30fps,游戏会表现奇怪(例如,如果一个慢速计算机只能拉动15fps,你不想让对象进行两倍的速度),更不用说漂移/个别慢帧等。
但我只是改变主要更新循环。由于我的整个程序围绕该循环进行,因此只需声明系统应该每20ms更新一次就很容易。但我更进一步。我想在这20 ms内更新系统的一个特定子集,最后更新屏幕。 – user1703993
你可能在想这件事。特别是在开始时,只需做最简单的事情。例如将物理与更新帧放在同一个循环中 – Heptic
唯一的缺点是你可能处于一个紧挨着循环的cpu中。 – andre
你是什么意思,“每30个滴答声”?什么? –
我只是指程序在运行时的步骤。 – user1703993