Java 理解游戏循环
我正试图遵循一个关于用Java创建游戏的教程,但我在理解游戏循环方面遇到了困难 我不理解此Java 理解游戏循环,java,game-loop,Java,Game Loop,我正试图遵循一个关于用Java创建游戏的教程,但我在理解游戏循环方面遇到了困难 我不理解此delta变量的用途 感谢您的帮助 public void run() { long lastTime = System.nanoTime(); final double amountOfTicks = 60.0; double ns = 1000000000 / amountOfTicks; double delta = 0; while(running) {
delta
变量的用途
感谢您的帮助
public void run() {
long lastTime = System.nanoTime();
final double amountOfTicks = 60.0;
double ns = 1000000000 / amountOfTicks;
double delta = 0;
while(running) {
long now = System.nanoTime();
delta += (now - lastTime) /ns;
if(delta >= 1) {
tick();
delta --;
}
}
}
amontofticks
表示10亿纳秒内的滴答数(即一秒钟内的滴答数)if(delta>=1)
检查delta是否大于1秒的滴答声如前所述#2是每滴答的纳秒数。这似乎是一种以每秒预定帧数执行游戏逻辑的方法,与CPU的实际速度无关。我希望tick()函数是执行游戏循环的地方 你不了解它的什么?你不了解它的什么?没有什么需要了解的——在你的头脑中尝试不同的
nanoTime
值,然后运行代码。@EJoshuaS我不了解delta变量是如何工作的,它的用途是什么。还有,你说“你不了解它是如何工作的”是什么意思?2是错误的。100000000纳秒/秒/60滴答声/秒=16666666.6666。。。ns/滴答声,而不是“一秒钟内滴答声的数量”,因为您已经知道该数字(60)。