2Dアクション・テンプレート:物理の対応:基礎の確認
物理エンジン「Box2D」を使うにあたり、「Box2Dで何ができるか」「アクションゲームにどのように使えるか」「こちらでやる作業は何か」についてまずは確認しておく。
=Box2Dで何ができるか=
Box2Dは他の多くの物理エンジンと同様に、以下のことが行える。
=アクションゲームにどのように使えるか=
上の項目で上げたものは、以下のようにアクションゲームで利用できる。
コリジョン(ぶつかり判定)の作成
いわゆる「当たり判定」とか「ぶつかり判定」と呼ばれるものが作れる。Box2Dでは、多くの物理エンジンと同じく、「プリミティブ」と呼ばれる「円」や「四角形」のコリジョン(ぶつかり判定)が作れる。
コリジョンの位置の自動計算
作ったコリジョン(ぶつかり判定)の位置の計算はBox2D側で自動で行ってくれる。例えば、「空中に居るから落下する」「坂に居るから転がる」「壁にぶつかったから進めない」などの挙動を自動で行ってくれる。しかし、アクションゲームとの相性が悪い部分もある。例えば、プレイヤーが「坂に居るから転がる」という挙動をとってもらったら困るだろう(そういうゲームを作るなら別として)。なので、完全に物理エンジンまかせにできるというわけではない。
=こちらでやる作業は何か=
こちらで行う必要がある作業は、だいたい以下の通り。
- メートルとピクセルの対応付け
- Box2Dの初期化処理(セットアップ)
- 「Box2Dの物体の位置」と「画像の位置」の同期
- Box2Dの位置の方に、画像の位置を合わせる
- コリジョンの大きさと形状の指定
- プレイヤーと地形の2つ
- 入力によるコリジョンの移動
- プレイヤーの左右移動とジャンプのため
将来的には「敵とぶつかった時の処理」などの対応が必要だが、まずはプレイヤーを動かすところまでということで、今回は対応を保留にしておく。
次回(おそらく明後日)は、これらの実際の設定から表示確認までを行う。
=参考サイト=
- Box2DでActionScript物理プログラミング:特集|gihyo.jp … 技術評論社
- Box2D ver2.0.0の解説。ダウンロード〜コンタクトリスナまで、基礎部分は一通り網羅している。