2014年10月28日

ゲームのアップグレード (5) | 隕石のアップグレード

さ〜て、いままで結構放っておいた、隕石自体のアップグレード、やってみましょうかね!


ひとまず向きをランダムで生成
さ、これまで一定の向きでしか発生しなかった隕石、ひとまず向きを変えてバリエーションを付けましょう!
簡単過ぎて、書くまでもないかな?
Screen Shot 2014-10-24 at 6.46.27 PM.png
ホントに単純でしたね...


斜めに落下する隕石も生成
さて、ゲームに変化を付けるために、斜めに落下してくる隕石も作ってみようと思いますね。
最初、そんなの要らないかと思ってたんだけど、やっぱりちょっと必要かな?アクセント的なのと、後はやり込み要素も含めて。
インベーターゲームのマザーシップみたいに、簡単な決め毎でパターンを作ってやる感じで。

さて、斜めに落下してくるんですが、通り道は一緒にしたいんですよね。円周上を斜めに落下するように。
なんで、移動ベクトルとか持つ形じゃなくて、純粋にサインコサインと経過時間から角度を求めて座標を得る形にしちゃいますね。
で、出来た初期化部分のコードはこんな感じ。
Screen Shot 2014-10-25 at 12.41.17 AM.png
落下速度と、落下開始時の角度と、地球にぶつかる時の角度を初期パラメータとして渡してます。
ゲームの座標系で言うと、0が画面正面(タイトル画面のね)、マイナスが画面左、プラスが画面右。
で、毎フレームの更新処理はこれ。
Screen Shot 2014-10-25 at 12.48.58 AM.png
落下部分のy座標は普通通り速度から求めて(86行目)、その今のy位置から、全体のどの程度進んだか割合を求めて(88行目)、その割合に応じて、現在居るべき角度を求めて(89行目)、その角度から今のxz座標を求める(92行目)。
こんだけ!!

で、テスト用の発生処理。
Screen Shot 2014-10-25 at 12.54.32 AM.png
発生場所は0に固定(画面正面ね)。で、終了位置を-40度から+5度ずつするコード。
これで実行してみると....
オッケー!動いてるね!!


大きな隕石も追加して耐久力も付けてみよう
じゃ、たまに大きな隕石も出現する様にしましょうかね。
ミサイルも複数当てないと壊れない様に、耐久力も付けてみましょう!
隕石の大きさのタイプとして、4種類作って、それぞれ違うHPとスコア、ついでにスケールを変えて見た目も変えました。
Screen Shot 2014-10-25 at 2.20.21 AM.png
で、このタイプを、隕石生成時のパラメータに含めて渡す様にしてます。
発生時の振り分けはこんな感じ。
Screen Shot 2014-10-25 at 2.44.54 AM.png
ま、ふつーですよね。
発生数をカウントして、特定のカウント毎に大きな隕石を発生。(58行目〜68行目)
で、大きな隕石、結構破壊するのが大変なんで、落下速度は気持ち遅くしてあげてます^^

大きさとは別に、斜めに飛んでく隕石も70行目で判定して、更なるアクセントを付けてますよ。
おっきいのが斜めに飛んで来たら大変だろうなぁ〜。

あっ、忘れてた。念のため。HPを減らす処理は、今までの OnCollisionEnter でやってて、ここに来ただけで Destroy してたのを、HP減らして、それが0以下だったら Destroy っていう処理に変えられてます。
こんなかんじで。
Screen Shot 2014-10-25 at 2.54.34 AM.png

じゃ、実行して動きを確認してみましょうね!
ちゃんと振り分けできてるみたい!
じゃ、ちょっとプレイしてみましょうかね!
なんか、激ムズになってますね.....
ま、テスト用でバランス全然気にしてないんだけど、要調整ですね....

でも、HP制になった隕石破壊、ちゃんと動いてますね!!

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪


HP 制といえばドラクエだなぁ〜
posted by やまけん at 10:13| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: