gpt4 book ai didi

Java 游戏循环说明

转载 作者:行者123 更新时间:2023-11-30 06:21:17 24 4
gpt4 key购买 nike

最近,我开始研究 Java 游戏编程。我以前学过 Java,但这是我第一次接触图形、游戏循环等。

我关注了this游戏循环教程,它运行良好。

它没有任何问题,但我只是想不通为什么我在 thread.sleeping 代码中,它有什么意义。

如果有人能解释什么是 start、elapsed 和 running,以及我为什么要执行 thread.sleep(wait),那么我将不胜感激!

GAME LOOP(记住,它有效,我只是不知道为什么):

while (running) {

start = System.nanoTime();

update();
draw();
drawToScreen();

elapsed = System.nanoTime() - start;

wait = targetTime - elapsed / 1000000;
if (wait < 0) {
wait = 5;
}

try {
Thread.sleep(wait);
} catch (Exception e) {
Game.logger.log("ERROR! Printing Stacktrace...");

e.printStackTrace();
}

}

}

最佳答案

嗯,running 是一个可以设置为 false 以终止游戏的标志。

startelapsed 用于测量循环中一轮所用的时间。你正在等待不要让游戏运行得太快。如果您以设定的速度移动元素,那么让游戏循环运行得太快也会使它们移动得太快。这可能会导致糟糕的用户体验,因为用户可能玩游戏的速度不够快。

此外,如果没有等待,任何动画都不会再流畅运行。它会根据您的代码执行速度加快或减慢。

只需继续本教程,当您开始行动时,消除等待,看看会发生什么。

编辑

代码使循环中的一个回合花费大约 targetTime。它的单位是毫秒。所以要计算帧速率,只需除以 1000/targetTime

关于Java 游戏循环说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20753084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com