Game Development #14

battleship_20131127_tank

戦車ユニットを追加。以前に別で作っていたプログラムからクラスをそのまま移植。クラス便利ですね。コリジョンの仕組みを新しく書き直して、重力に対応。重力を軽くすれば勢いがついた戦車がふわっと浮き上がったりします。これで月面をバギーで走り回るゲームにも対応可能ですね。

 

battleship_20131127_collision_00

で、なぜコリジョンを書き直したかというと、動いているモデルの上にモデルを乗せたかったからです。手始めに戦車を空母の上に載せてみました。あんまり強そうじゃないですね。本当は戦闘機を載せたいのですが航空機はちょっと複雑なので後ほど・・・。

 

battleship_20131127_collision_01

親が動くことによって子の相対位置がどのように移動するか計算します。手順ですが、子の座標を親モデルのローカル空間座標に変換し、親の前フレームの行列を使って再びワールド座標に変換します。その差の移動量を子モデルに加算しています。これによって親が傾いても子が追従し、子も親の上で動き回れます。挙動はちょっとまだ不自然だけど・・・。

 

battleship_20131127_deck

さて戦闘機の仕組みも離着陸可能にするために書き直します。開閉式の車輪も作らないとね~・・・。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中