2017-02-22 4 views
-1

私はここ数ヶ月にわたってJavaで2次元の戦闘ゲームを作っていますが、ゲームの終了や再実行の数回後に常に同じ厄介な問題を抱えていました。突然急激に設定速度/フレームレートに低下します。これは私のゲーム用PCと同様に私の偉大なラップトップでも起こるので、パフォーマンス上の問題ではないと思います。Java 2Dゲームは複数回実行した後にゆっくり実行されます

何らかの理由で、コンピュータを起動したときと同じように、コンピュータを再起動してもスムーズに動作し、すぐに実行した後すぐにスローモーションで動作するようになります。

私は、スイングタイマーとpaintComponentメソッドを使用してゲームを作成しています。

おかげ

+0

あなたが知っていることがたくさんあります。静的変数、無限ループ、閉じていないスレッド、オブジェクトを作成していますが、GCが破壊することはありません。それはあなたの質問を広げることです。デバッグを試してください。JProfilerなどを使用してください。 – Gatusko

+0

考えられる原因が多すぎます。それは、あなたがイベントディスパッチスレッドであなたを眠っているからかもしれません。あるいは、paintComponent()メソッドでやってはいけないことがあまりにも多くなりすぎて、遅れているか無反応であるという錯覚を与えてしまいます。それは、あなたの非効率なロジック、あまりにも多くのネストループなどがあります。 – user3437460

+0

詳細については、[プロファイル](http://stackoverflow.com/q/2064427/230513)コードが必要になります。 – trashgod

答えて

0

コードのプロファイルを作成します。プロファイラは、メモリリークやホットスポットの検索に役立ちます。 JProfilerは良いですが、あなたはそれを支払う必要があります。私は使用しますVisualVM

+0

詳細[ここ](http://stackoverflow.com/q/2064427/230513)。 – trashgod

関連する問題