0

所以我正在用 Java 制作一个简单的 2d 游戏。我只使用 1 个线程并将游戏设置为以 120 fps 运行,因为这个游戏不是资源繁重,几乎任何计算机都应该能够运行它,事实上我朋友 8 岁的计算机可以以 120fps 运行它,但是我不能,也不总是,我知道我的电脑足够快,它是一台具有非常好的规格的家用电脑。起初它能够以 120 fps 轻松运行,但最近当我尝试运行游戏时,它以 63-64 fps 停止,我没有对我的游戏代码进行任何更改,因为它以 120 fps 运行。我没有使用任何库,我只是使用 Graphics g2d 和 sprites。

我真的不知道我应该包含哪些代码,这是我的主线程:

time = new Timer(8, this);
        time.start();

我还包含了可以运行(用于测试 fps)或反编译的 jar 文件。(http://www.4shared.com/file/pdXXyxr8/Game.html)我知道这是一个有点糟糕的帖子,但我真的不知道要包含什么,这是一个非常奇怪的问题,似乎与运行时更相关和随机概率然后编码。

4

3 回答 3

0

Swing Timer 的时间片从来都不是绝对可靠的,在您使用的非常小的时间片上更是如此。我会使用时间延迟常数作为时间片大小的粗略建议,但获取系统时间并测量实际时间片并将我的模型更改(例如精灵移动的距离)基于实际时间片尺寸。

于 2013-09-10T02:50:38.807 回答
0

也许您处于调试模式,启用了断点(尤其是条件断点),或者其他什么?

否则,返回版本控制直到速度恢复。如果你没有版本控制,备份整个项目,然后删掉代码——每次目标是 50%——直到速度恢复。这本质上是一种“二分查找”策略,通过删除代码,来查找问题。

于 2013-09-10T02:51:14.230 回答
0

您可以尝试使用 System.nanoTime(); 我也不会将游戏设置为 120fps,而是取决于显示器的频率。对于一个简单的游戏,你不应该要求 120fps,除非你正在制作一个依赖立体的游戏。

于 2014-10-30T23:48:01.873 回答