多くの正方形のタイルベースの効率的な衝突検出?
現在私はタイルベースのゲームの独自のテイクに取り組んでいます(Terrariaを考えてくださいが、空想的ではありません(それは言葉だと思いますか?そうでない場合は申し訳ありません))。 とにかく、私は現在、衝突検出が機能しています(コーナーケースの場合でも!)。これは私にとって大きな一歩でした。スプライトがブロックを通過しないのを見るのは非常にうれしいことです。しかし、それから私はベンチマークするという考えを持っていました。悪いアイデア。 1,000平方、問題ありません。10,000の正方形、3つの文字は少し遅れました。3文字で100,000の正方形(本当に巨大な地図)はプレイできませんでした。 プレイヤー、キャラクター、アイテムなどから遠すぎるブロックも考慮したくないという問題がありますが、それらを常にメモリからロードしたくありません。 ここまでが私のアルゴリズムです。自由に非難してください。 foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between the two bounding boxes if (depth of intersection != Zero-vector) { check y size vs x size resolve on smallest …