【发布时间】:2021-10-20 02:02:33
【问题描述】:
我正在尝试在 java 中创建一个游戏循环,该循环具有可以在游戏运行时设置的帧上限。我遇到的问题是我有一个 render() 函数和一个 update() 函数。只为 render() 和 update() 设置帧上限意味着当您更改帧上限时游戏逻辑的速度将会改变。知道如何在不影响游戏逻辑速度的情况下在游戏中设置帧上限(update())吗?
【问题讨论】:
-
尝试使用定期触发事件(帧)的计时器,而不是循环。这会将代码翻过来。这就是 JavaFX 的 swing 正常工作方式。
-
是的,它是图形的,我目前正在使用 swing。
-
两个独立线程中的两个独立循环,一个用于更新,一个用于渲染。您可以调整渲染循环的延迟。
-
uffff 我过去做了很多工作,我需要刷新我的大脑才能显示完整的答案,同时,你可以看看我的项目(单个 java文件)github.com/vituchon/sleepy-screensaver/blob/master/main/… 以某种方式处理时间控制(有很多方法可以处理更新间隔)。
标签: java swing while-loop game-loop