私はBeat'emUpゲーム用の2Dエンジンを作成中です(CastleCrashersは私がBeat'emUpまたはBrawlerの種類のゲームと呼んでいるものです)。
2Dスプライトと2Dパーティクルエミッターをサポートします。これはすべてエンジンで実行されます。しかし、私はアドバイスを求めたい問題に直面しました:
それは「スペース」管理についてです。この画像が示すように、私が考えたのは何かをすることでした。
代替テキストhttp://img337.imageshack.us/img337/9162/spacingprototype1.png
私のアイデアは、パーティクルエミッター/ 2Dスプライトが存在する地面のグリッド(空間ハッシュまたはグリッド)を作成することです。私の写真では、このスロットを1からNまで列挙しています(35である必要はありません。これは、目的を示すためだけのものです)。私の考えは、「GameElements」(スプライト/エミッター)を0からNの順に(バケット0からバケットNに向かって)描画することです。これにより、画面上で正しくオーバーラップして表示されるようになります(戻るから進む)。
これは、各要素の下側のY軸を比較して「クイックソート」を実行するだけで実行できることはわかっていますが、グリッドを使用すると、より良い方法で衝突検出を実行できます。また、A*のようなものを実行すると実装できます。ある種のAI、それは私にも役立つかもしれません。