Java applet游戏在不同的计算机上以不同的速度运行

时间:2012-06-06 21:52:33

标签: java applet

我已经构建了一个Java游戏(applet)并将其放在test website上。我不能在这里显示整个代码作为它的大,但游戏以20帧/秒的速度运行,因为它在主循环中睡眠50毫秒。我在三台计算机上运行游戏,其中两台在处理器速度和内存上比另一台快。另一个是一个小笔记本,它不能正常运行我的游戏。我的游戏就像是一个带有球拍和球的突破性游戏,问题是,当球移动时它会减速并加速常规的Patton(这是非常明显的)。这种情况发生在小型计算机上,但不发生在另外两台计算机上。

游戏: 为了制作这个游戏,我遵循了这个series on YouTube

基本上是这样的:

有三台电脑:

  • 笔记本电脑(2GB内存和1.60 GHz) - 运行游戏时遇到问题(慢速快球)
  • 笔记本电脑(4GB内存,2.7 GHz) - 以与桌面(完美)一样快的速度运行游戏
  • 桌面(16GB内存,不安全但高于2.7 GHz) - 完美运行游戏

根据上述知识,我可以排除游戏依赖于处理器速度,并且必须是其他东西。可能是因为笔记本处理器,它的两个弱处理呢?但它是1.6 GHz,所以我不知道如何一周的小游戏。我真的不知道该怎么想,任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

不要只是在周期之间休息,尝试这样的事情:

...

final long timeSlice = 100;
while(true) {
  long startTime = System.currentTimeMillis() ;
  doMyStuff();
  long endTime = System.currentTimeMillis();
  sleep(Math.max(timeSlice + startTime - endTime, 0))
} // end while()

...

最终每个周期都会花费大约相同的时间。