所以我用Java制作一个简单的2D游戏。我只使用1个线程并设置游戏运行120 fps,因为这个游戏不是资源重,几乎任何计算机都应该能够运行这个,事实上我的朋友计算机,如8岁,可以120fps运行,但我不能,也不总是,我知道我的电脑足够快,它是一台家用电脑,具有非常好的规格。起初它能够以120 fps的速度轻松运行,但是最近当我尝试运行游戏它以63-64 fps停止时,我没有对我的游戏代码进行任何更改,因为它以120 fps的速度运行。我没有使用任何库我只是使用Graphics g2d和sprites。
我真的不知道我应该包含哪些代码,这是我的主线:
time = new Timer(8, this);
time.start();
我还包括我的jar文件,可以运行(用于测试fps)或反编译。 (http://www.4shared.com/file/pdXXyxr8/Game.html) 我知道这是一个有点糟糕的帖子,但我真的不知道包含它的一个非常奇怪的问题,似乎与运行时和随机概率更相关然后代码。
答案 0 :(得分:0)
Swing Timer对于它的时间片绝对不是绝对可靠的,而且在你使用的非常小的切片上这是真的。我会使用时间延迟常量作为时间片可能的大小的粗略建议,但会获得系统时间并测量实际时间片并基于我的模型的变化,例如精灵的距离按实际时间片大小移动。
答案 1 :(得分:0)
也许你处于调试模式,断点(特别是有条件的)是启用的,还是什么?
否则,返回版本控制直到速度恢复。如果您没有版本控制,请备份整个项目,然后删除代码 - 每次目标为50% - 直到速度恢复。这实际上是一种“二元搜索”策略,通过删除代码来找到问题。
答案 2 :(得分:0)
你能尝试使用System.nanoTime();我也不会将游戏设置为120fps,而是我会依赖于显示器的频率。对于一个简单的游戏,除非你制作立体依赖游戏,否则你不应该需要120fps。