2014年11月21日

ゲームのアップグレード (27) | レベルデータ 一応完結編

さて、なんか進まない今日この頃....

レベルデータの方が完結してなかったんで、今日は一応完結編!
ま、バランス調整に終わりは無いんですけどね。


最後の仕様スラントボス
さて、最後に残ってたボス仕様、スラントボス。
なんか大げさですが、たいした事なくて、一定時間、斜めに移動する隕石ばかり降ってくるってボスなんです。
結構簡単に考えてたんですが、実際アルゴリズムを考え始めて見ると、以外と面倒!

結構悩んでしまいました。
ま、今もちょっと悩みはあるんだけど。

最初はランダムに軌道を求めてたんだけど、自由過ぎて動きが激し過ぎたり、ほとんどまっすぐだったりって事もあったり、ある程度は管理してやんないと駄目なんですね。やっぱり。

で、最終的にたどり着いた仕様は、
  1. 今隕石が発生可能な範囲を30度毎に分割。そのインデックスを保存。
  2. 最初の発生は、画面正面を発生方向として設定。
  3. 保存したインデックスから、落下目標インデックスを発生位置インデックス以外のインデックスから抽選。
  4. この二つのインデックスから隕石の落下軌道を決定。少しの乱数誤差を入れるけど。
  5. 次に発生する隕石の発生位置インデックスは、前回の落下目標インデックスとする。
こんな感じ。
1.が、最初発生可能範囲がレベル毎に違うんで、結構実装で悩んでたんだけど、最初から360度分のデータを作って、角度からインデックスを求める形にしたら簡単になりましたw
結構ありがちな、正面がインデックス 0 で考えたくなる病に掛かってたんですよねww
5.は、こうじゃなくても問題ないんだけど、なんか、昔のゲーム的な、法則性をなんか持たせたかったんですよね。

スクリプトはこんな感じ。ここだけ見ても、ちょっと分かりにくいかもだけど。

Screen Shot 2014-11-21 at 11.44.12 AM.png

これ全体がコルーチンで走らせる形になってて、レベルデータで指定されたボスの隕石数を発生したら終了(182行目が発生数の取得)。
隕石発生間隔も、レベルデータから引っ張って来てる(209行目)。
自分以外のインデックスを落下目標として取得して(186行目)、求めたインデックスから基本角度を設定(191,192行目)。
ここでちょっとだけランダム要素も追加ね。

で、昔作った隕石の発生と落下目標を角度で管理する方でパラメータをセット(202行目)。落下開始。

こんな感じだね!!

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

あんまし関係ないけど、一家に一冊!
posted by やまけん at 11:56| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: