Game Development #16

2Dマップ

battleship_20131224_map

デバッグ目的で小さい全体マップを表示してみました。このプログラム、弾丸の量がやたらと多いので、ようやく全体を把握できるようになりました。

2Dの座標計算は3Dに比べるとずっと楽ですね。XNAには3Dの座標計算に便利な行列の型や関数が用意されているので内部の計算をあまり意識していませんが、2Dの行列計算は用意されていないので、久々に回転行列の仕組みを数学の復習がてら書いてみました。三角関数の加法定理とか懐かしいですね。咲いたコスモス、コスモス咲いた、とか期末試験を突破するためだけに念仏を唱えるように覚えたなあ・・・。

 

4分割画面

battleship_20131224_split

画面の4分割表示もやってみました。それぞれの解像度は低いとはいえ、4枚レンダリングは負荷が高いので、LODやカリングを考えないとならないですね。一緒に遊んでくれる友達が増えるといいなあ。

 

現代兵器ユニット

battleship_20131224_modern

現代兵器ユニットも増えています。基本的にミサイルを搭載しているので攻撃力は高いですが防御力は虚弱な設定。

battleship_20131224_cwis

イージス艦同士でミサイルを撃ち合い、それをCWISという防衛システムの機関砲で撃ち落す実験をして遊んでます。マシンガンでミサイルを撃ち落すというところが熱いんですよね。しかしマシンガンは多量の弾丸を飛ばすので当たり判定の計算量が大変です。なんとかならないものか。飛距離を限定するとかがいいのかな。

 

装甲車ユニット

battleship_20131225_car

自動車の挙動を以前からやってみたいと思っていたので作ってみました。ドイツ装甲車Sd.Kfz. 222です。

battleship_20131226_suspension

自動車のハンドリングと、サスペンションの挙動を簡易的にいれてみました。加速度の差分を毎フレーム取得してバネに伝えるということをやっています。急停車すると前のめりになり、遠心力で左右に傾き、ジャンプからの着地で車体が沈むようになりました。車輪の回転は移動量をタイヤの円周の長さで割ることで計算しています。(現実の逆ですね。タイヤの回転から移動量を求めるほうが自然?)

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中