4

我已经用 C(小型个人项目)制作了一些视频游戏。而我每次遇到的问题都是一样的,如何管理游戏中的循环。

例如,我用 SFML 编写了一条蛇。我使用帧速率处理周期:正常时为 5 帧速率,并在通电后将其更改为 10。这行得通。但这很可怕。而且它不能在一台坏电脑上正常工作。出于同样的想法,我还制作了一个游戏,我认为一个循环等于一个循环的一圈(无限循环)。同样的问题,高性能计算机会比低性能计算机运行得更快。

那么,有人可以建议我如何正确管理电子游戏中的循环。

提前致谢 !

4

2 回答 2

6

帧率应该对游戏没有任何影响。如果它的 gettig 60FPS 或 1000s FPS 那么这不会影响任何事情。

您要做的是查看增量时间或经过的时间(如果时间足够),然后进行模拟或加电。

所以当你移动蛇时。它希望每帧移动一段距离。如果帧速率低,则距离比帧速率高时更大。距离为speed_it_moves_at * delta_time

于 2013-05-09T14:26:33.337 回答
5

从广义上讲,您需要对游戏状态进行建模,使其可以“前进”给定的时间增量,然后在主循环的每个循环中确定已经过去了多少时间(通常是第二)并将游戏状态提升这么多。这就是无论帧速率如何,游戏似乎都能顺利运行的方式。

间隔基本上成为所有运动的比例因子。例如,如果您的蛇以每秒 5 个单位的距离向前移动,并且在您的主循环期间,您发现距离蛇上次移动已过去 0.01 秒,您将让您的蛇前进 (0.01 * 5) 个单位该循环期间的距离。

于 2013-05-09T14:27:46.867 回答