このセクションではプレイヤーとブロックの衝突の判定方法を説明します。今回のゲームではプレイヤーとブロックが矩形(全ての角が直角の四角形)です。そのため衝突判定はいくつか種類がありますが、このレッスンでは矩形同士の衝突判定を実装します。また、よく使用される矩形同士の衝突判定には距離を使用する方法と頂点を使用する方法がありますが、このレッスンでは距離を使用する方法を行います。

矩形同士の衝突判定

距離を使用する矩形同士の衝突判定はプレイヤーとブロックのx軸方向、y軸方向のいずれもプレイヤーの中心とブロックの中心の距離が、プレイヤーの半分の長さとブロックの半分の長さを足したものより小さければ衝突したとみなします。下の画像を参照してください。

ここでは説明しやすいようにx軸方向だけを判定します。まずx軸方向において、プレイヤーの中心とブロックの中心の距離をdx(distance x)、プレイヤーの半分の長さps / 2とブロックの半分の長さbw / 2の和、つまりps / 2 + bw / 2lx(length x)と置きます。そしてdxlx以上であれば衝突なし、小さければ衝突とみなします。実際の処理ではy軸方向に対しても同様の判定を行いx軸方向、y軸方向のどちらもこの条件を満たしていれば衝突したとみなします。

衝突判定を実装する手順

このレッスンではプレイヤーとブロックの衝突判定を次の手順で実装します。

  1. ブロックの中心座標を計算
  2. プレイヤーとブロックの距離を計算
  3. プレイヤーの半分の長さとブロックの半分の長さの和を計算
  4. 2.と3.で計算した距離と半分の長さの和を比較して衝突を判定

次のセクションでは、ブロックの中心座標を計算します。

コメント

コメントはまだありません。

コメント