私は苦しみが好きなので、Java で 2D アイソメトリック エンジンを作ることに取り組んでいます。とにかく、私は衝突検出に入っていて、ちょっとした問題にぶつかりました。
ゲーム内のキャラクターは、タイルからタイルへの移動に制限されず、自由に移動します。私の問題は、タイルへのアクセスを拒否せずに、プレーヤーがクレートなどと衝突するのを防ぐ方法がわからないことです。
たとえば、クレートがタイルの 0.5 にあり、残りのクレートがタイルから外れていたとします。プレーヤーが、タイル全体ではなく、タイルの空きの 0.5 に移動できるようにしたいと思います。タイルがブロックされます。
私が遭遇した問題は、オブジェクトのフットプリントのサイズを概算する方法がわからないことです。ゲーム空間でのオブジェクトの「高さ」は、画像が占有する追加の床面積に変換されるため、画像の寸法を使用してもうまく機能しません。
オブジェクトのサイズはどのように推定すればよいですか? ピクセルパーフェクトな検出は必要ありません。ひし形は問題なく機能します。
必要なコードがあれば喜んで提供しますが、これは数学の問題のようです。