
No.2ベストアンサー
- 回答日時:
2Dでも昔のスプライトを使ってた時代や、現在でも古典的な2D描画(WindowsならBitBlt系のAPIを使った描画を使うゲーム)では長方形同士のあたり判定を使うことが多いようです。
これは判定が非常に簡単で高速です。ゲームにもよると思いますが、通常はダメージを食らう場所の数個長方形をおきます。2Dでももう少し時代が後になって図形の回転を伴うような描画を使うようになってからは、回転した長方形では計算が面倒なので円を使うことが多いと思います。攻撃の円の中心座標を(ax,ay)、攻撃の円の半径をarとし、食らい側の中心座標を(dx,dy)、半径をdrとすると(ax-dx)^2+(ay-dy)^2 < (ar+dr)^2なら当たりです。
3Dの場合はコリジョンという言葉を使うことが多いようですが、やってることはこれをx,y,zでやるだけです。
他に非常に動きの早い弾丸や光線では、当たりの形を円柱にします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
人気Q&Aランキング
-
4
StretchBlt関数について
-
5
UpdateData( FALSE); による文...
-
6
C#を用いて描画する四角形の角...
-
7
C# ゲーム作成 FPSと描画...
-
8
シュミレーションゲームのプロ...
-
9
DirectX png画像でx軸回転につ...
-
10
MFCでOnPaintのタイミング
-
11
VBAにGDI+を参照させる方法
-
12
GDI+のDrawStringを使って文字...
-
13
FlexGridの一部のみ表示を更新...
-
14
シミュレーションゲームのゲー...
-
15
VC++2010(MFC)での描画
-
16
C++にて、塗りつぶされた円を描...
-
17
領域の塗りつぶし
-
18
Wave波形の描画について
-
19
DXライブラリでの2Dの描画...
-
20
線形補間法プログラム(C++)