在過去的幾個月裏,我一直在用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