如何使用Slick2D / LWJGL中的“delta”或一般的游戏编程?

时间:2011-11-26 23:44:20

标签: java lwjgl slick2d

我所知道的是,delta在某种程度上与适应不同的帧速率有关,但我不确定它的确切含义以及如何在计算速度和不计算速度的数学中使用它。 delta声明在哪里?初始化? 怎么用?它的值(最小值,最大值)如何设定?

2 个答案:

答案 0 :(得分:5)

这是帧之间的毫秒数。您不想尝试在帧之间的固定毫秒数内构建游戏,而是根据自上次更新方法到来以来已经过了多少时间来改变游戏以移动/更新/调整每个元素/精灵/ AI周围。几乎所有游戏引擎都是这种情况,并且允许您避免根据您运行的硬件的功能来更改游戏逻辑。

Slick还具有设置最小更新时间的机制,因此您可以保证增量不会小于某个数量。这允许你的游戏基本上说,“不要比每'x'毫秒更频繁地更新”,因为如果你在强大的硬件上运行,并且游戏循环非常紧张,理论上可以获得亚毫秒级的增量它开始产生奇怪的副作用,例如慢速移动或碰撞检测,似乎不像你期望的那样工作。

设置最短更新时间还允许您在不过非常非常短的时间内不必要地重新计算。

答案 1 :(得分:1)

阅读here的LWJGL计时教程。它不是严格的光滑,但会解释delta值是什么以及如何使用它。