【发布时间】:2010-06-23 15:07:15
【问题描述】:
我正在写一个游戏,我看到 FPS 算法不能正常工作(当他必须计算更多时,他睡得更久......)所以,问题很简单:如何计算睡眠时间FPS 正确吗?
我知道以微秒为单位更新一帧游戏需要多长时间,当然还有我想要达到的 FPS。
我正在疯狂寻找一个简单的例子,但我找不到......
代码可能是 Java、C++ 或伪......
【问题讨论】:
-
通常您不想限制您的 FPS。如果有人为非常好的显卡付费,他们想要更高的 FPS。您应该设计您的代码,以便它测量帧之间的时间(甚至可以在与帧速率无关的任意“滴答声”上工作),然后使游戏对象根据该经过的时间进行更新。如果操作正确,您的游戏将以 15fps 或 100fps 的速度播放,唯一的区别是运动的流畅度。
-
@rmeador:快于显示器的刷新率(在 TFT 显示器上通常为 60 Hz)没有什么意义(当然,这不应该被依赖)。
-
@rmeador:但这会吃掉所有的 CPU...
-
为什么你认为游戏用完所有 CPU 时间是一件坏的事情?这就是游戏“尽可能快地运行”的含义。大多数现代高性能游戏会占用大部分可用的 CPU 时间(至少在一个内核上)。
-
许多现代游戏实现了可选的 FPS 限制。如果用户不希望“尽可能快地运行”,这允许游戏仅运行必要的(例如 100 FPS 或 60 FPS)。两全其美。 :)
标签: java c++ algorithm frame-rate