0

Javaで簡単な2Dゲームを作っています。私は 1 つのスレッドのみを使用し、ゲームを 120 fps で実行するように設定しています。このゲームはリソースを大量に消費しないため、ほとんどすべてのコンピューターでこれを実行できるはずです。実際、8 歳のような友人のコンピューターは 120 fps で実行できますいつもではありませんが、私のコンピューターが十分に高速であることはわかっています。非常に優れたスペックを備えた自家製のコンピューターです。最初は 120 fps で簡単に実行できましたが、最近ゲームを実行しようとすると 63 ~ 64 fps で停止します。120 fps で実行されていたので、ゲーム コードに変更を加えていません。グラフィックg2dとスプライトを使用しているだけのライブラリを使用していません。

どのコードを含める必要があるのか​​ よくわかりません。これが私のメインスレッドです:

time = new Timer(8, this);
        time.start();

また、実行(fpsのテスト用)または逆コンパイルできるjarファイルも含めました。(http://www.4shared.com/file/pdXXyxr8/Game.html)これがちょっと悪い投稿であることは知っていますが、ランタイムに関連しているように見える本当に奇妙な問題で、何を含めるべきか本当にわかりませんそしてランダムな確率でコード化します。

4

3 に答える 3

0

Swing Timer は、そのタイム スライスについて完全に信頼できるものではありません。これは、使用している非常に小さなスライスでは二重に当てはまります。時間遅延定数をタイム スライスのサイズの大まかな目安として使用します、システム時間を取得して実際のタイム スライスを測定し、モデルの変更 (スプライトが移動する距離など) を実際のタイム スライスに基づいて行います。サイズ。

于 2013-09-10T02:50:38.807 に答える
0

デバッグ モードに入っているか、ブレークポイント (特に条件付きブレークポイント) が有効になっているか、または何か?

それ以外の場合は、速度が回復するまでバージョン管理に戻ります。バージョン管理がない場合は、プロジェクト全体をバックアップしてから、速度が回復するまで、毎回 50% を目指してコードを切り出します。これは本質的に、問題を見つけるためにコードを削除することによる「バイナリ検索」戦略です。

于 2013-09-10T02:51:14.230 に答える