自作ゲームに組み込んでいる衝突判定について、整理も兼ねてご紹介します。 説明を簡単にするために2D空間で説明します。 バウンディングボリューム バウンディングボリュームについては、容易に判定可能で実用的ということで 各軸に平行な四角形(以下の図のようなの)を採用します。 このような四角形のことをAABB(axis-aligned bounding box)と言います。 AABBのデータ構造 色々考えられますが、 最小座標とそれぞれの辺の長さ 中心座標とそれぞれの辺の半分の長さ 最小座標と最大座標 ここでは1.を採用します。 データ構造は以下のようになります。 struct AABB { POINT min_; SIZE size_; }; 図にすると以下のようになります。 静止しているAABB同士の衝突判定 上の図でobj1とobj2が衝突する条件を文章で書くと以下のようになります。 ob
![実践的な衝突判定(AABB編) - 結果だけでなく過程も見てください](https://cdn-ak-scissors.b.st-hatena.com/image/square/3f32c942f25c13054ea90f108e5797fc40dbea99/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftaiyakisun%2F20120204%2F20120204223637.jpg)