1

我已经构建了一个 Java 游戏(小程序)并将其放在一个测试网站上。我无法在这里显示整个代码,因为它太大了,但是游戏以 20 帧/秒的速度运行,因为它在主循环中休眠了 50 毫秒。我已经在三台计算机上运行了游戏,其中两台在处理器速度和内存方面比另一台更快。另一个是一个小笔记本,它不能正常运行我的游戏。我的比赛就像一个带有球拍和球的突围比赛,问题是,当球移动时,它会减慢速度并加快常规巴顿(非常明显)。这发生在小型计算机上,但不会发生在其他两台计算机上。

游戏:为了制作这款游戏​​,我在 YouTube 上关注了这个系列

所以基本上:

一共有三台电脑:

  • 笔记本电脑(2GB 内存和 1.60 GHz) - 运行有问题的游戏(慢球和快球)
  • 笔记本电脑(4GB 内存,2.7 GHz)- 运行游戏的速度与台式机一样快(完美)
  • 台式机(16GB RAM,不确定但比 2.7 GHz 高得多)- 完美运行游戏

有了上面的知识,我可以排除游戏依赖于处理器速度,必须是别的东西。会不会是因为笔记本处理器,因为它的两个处理器比较弱呢?但它是 1.6 GHz,所以我不知道如何玩一个小游戏。我真的不知道该怎么想,任何想法将不胜感激。

4

1 回答 1

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()

...

您最终将花费大约相同的时间来完成每个周期。

于 2012-06-07T00:02:05.057 回答