2012.06.12ブロック崩しを作ろう!物理エンジンで学ぶC言語のStep5です.今回は構造体と物体へ力やトルクを加える方法,さらにシミュレーションのリセット法などを学びます.構造体の概要については既にわかっているものとし,サンプルコードを示すことにより具体的な使い方を学びます.例として、Step5とStep6でスティーブン・ジョブスがAtari社時代に、アップルの共同設立者ウォズニアックと開発に携わったBreakout(ブロック崩し)風のゲームを作ってみましょう。dmObject;また、STEP4まではdmLoop関数の引数にstep関数やcommand関数を渡していましたが、ここでは関数のポインタを要素に持つ構造体dmFunctionsを定義します。今まではdmLoopに渡す関数が増えるとその数だけ引数が多くなってしまいましたが、この構造体だけを引数として渡せば良いのでプログラムがすっきりします。物理エンジンODEでは物体は2つの属性からできています。一つは動力学計算の対象となるbody(ボディ)、もう一つは衝突検出の対象となるgeometry(ジオメトリ)です。ゲームでは動かない建物や壁など動力学計算を働かせる必要のない物体は衝突検出計算だけを適応すれば計算処理が軽くて済みます。ここでは、衝突検出計算だけ働く物体を作るAPIを紹介します。color[3]);衝突検出計算しか作用しない物体を作成します.dmCreateBoxの後にStatic(静的)を付け加えたAPI名です。dmCreateCapsuleStaticがあります。z);を使って強制的に位置を移動させる。ここで、1番目の引数にはbar.geomを入れればよい。