我正在研究java中一个简单的“乒乓球”2D游戏。
(我之前关于这个问题的问题涉及一个计时器。我已将其更改为一个主题,这是一个不同的主题,所以我认为它适合提出一个新问题。)
游戏使用一直运行的线程,以便在屏幕上移动对象,并不断重新绘制它。
我已经在线程中添加了一些代码,以确保游戏以恒定速度运行,但这似乎不起作用。
在游戏的前几秒,它总是非常快(“乒乓球”飞得很快),然后它突然减速,达到一个看起来非常稳定的速度。
为什么会这样?以下是run()
的{{1}}方法的代码:
Runnable
答案 0 :(得分:3)
IMO你不应该依赖睡眠'实时'中的方法游戏。
你应该做的是:
与游戏中的任何其他东西相同,这取决于时间!
使用这个'思考'你将使你的引擎独立运行'它将在任何机器上运行(基本上)相同。 (不要引用我的话:P)
唯一一次(imho)睡眠是可以的,就是当你想要减慢游戏速度以防它跑得太快时 - 因为你可以得到非常小的数字...