在过去的几个月里,我一直在用java制作一个2d的格斗游戏,但一直有同样令人讨厌的问题,在几次关闭并重新运行游戏之后,它总是会突然剧烈减速至设定的速度/帧速率。这发生在我不是很棒的笔记本电脑以及我的游戏PC上,所以我不认为这是性能问题。Java 2D游戏在多次运行后运行缓慢
由于某种原因,它也与我启动计算机的时间有关,就好像我重新启动计算机一样,它会平稳运行,然后不久我再次运行它时,它会回到慢速运行状态。
我正在使用swing定时器和paintComponent方法来创建游戏。
谢谢
在过去的几个月里,我一直在用java制作一个2d的格斗游戏,但一直有同样令人讨厌的问题,在几次关闭并重新运行游戏之后,它总是会突然剧烈减速至设定的速度/帧速率。这发生在我不是很棒的笔记本电脑以及我的游戏PC上,所以我不认为这是性能问题。Java 2D游戏在多次运行后运行缓慢
由于某种原因,它也与我启动计算机的时间有关,就好像我重新启动计算机一样,它会平稳运行,然后不久我再次运行它时,它会回到慢速运行状态。
我正在使用swing定时器和paintComponent方法来创建游戏。
谢谢
你知道有很多东西可以。静态变量,一个无限循环,一个不关闭的线程,您正在创建对象,但不会让GC破坏它。这是为了扩大你的问题。尝试调试,使用JProfiler等 – Gatusko
太多可能的原因。它甚至可能是因为你正在睡觉你的事件派发线程。或者你正在做太多的事情,你不应该在你的paintComponent()方法中给你一个错觉,认为它是滞后的或者无反应的。这可能是您的低效逻辑,太多嵌套循环等等。 – user3437460
您需要[profile](http://stackoverflow.com/q/2064427/230513)了解更多信息。 – trashgod