イベントに基づいて動作する必要がある完全に自動化されたゲームエンジンを作成しようとしています。私が直面している問題は、マップクラスを作成し、それがゲームクラスで初期化されていることです。これはほとんど静的であり、ゲームに存在するマップは1つだけです。新しいマップは、現在のマップのオブジェクトをクリアし、新しいマップを追加することによってロードされます。マップクラスのソースはここで確認できます。
http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/map/Map.java
主な問題は、衝突検出にあります。ここでは、ブルートフォース衝突検出を使用すべきではありません。これによりゲームの速度が大幅に低下するため、オブジェクトに近いオブジェクトについてのみ衝突をチェックしたいと思います。MapLoaderインターフェースを使用してマップを作成してきました。別のスレッドでオブジェクトのcollision()メソッドを呼び出すと役立つと思います。ただし、Gameクラスではすべてのマップオブジェクトが更新されます。
それが役立つかもしれない場合に備えて、これがゲームクラスです
http://code.google.com/p/game-engine-for-java/source/browse/src/com/gej/core/Game.java
オブジェクトが破壊されない場合があるという別の問題があります。マップのremoveObject()メソッドを呼び出していますが、1秒の遅延があり、まったく削除されない場合があります。
ゲーム内に158個のオブジェクトがあるプラットフォームゲームで48〜64fpsが得られます。しかし、スペースインベーダースタイルのゲームでは、20〜30fpsしか得られません。最適化に関するアドバイスは大歓迎です...
バイナリスペーシングなどのチュートリアルを誰かに教えてもらえたらありがたいです。