攻撃処理を砲塔から分離
前回までの仕組みでは「攻撃処理を砲塔に任せる」ため異なる砲塔の攻撃を組み合わせることができませんでした。なので「砲塔から攻撃の仕組みを分離する」ことにしました。まずは成果を動画にて。攻撃時に現れるオレンジ丸が攻撃用のスプライトで、攻撃を終えると削除されます。
0:00-:攻撃設定を1つ
0:20-:攻撃設定を3つに増やす
0:48-:角度を変化させる
1:08-:攻撃のタイミングを遅らせる
1:40-:攻撃の位置を1つの砲塔に集める
2:11-:利用する攻撃を変更
2:50-:方向を変更
3:16-:ホーミングの設定
補足
この仕組みだと1つの砲塔に複数の攻撃設定ができるため実現できる弾幕のパターンが増える。
角度変更や攻撃開始のタイミングは攻撃設定の書類で設定できるようにした。角度の部分に「h」を設定することで自機狙い弾に変更もできる(各砲塔のホーミング設定は廃止した)。
砲塔の設定
動画で表示しているテキストの1〜10行目は砲塔の設定で、以下の様なフォーマットになっている。現在の仕様だと砲塔は最大10までしか表示できない。「弱い砲塔が沢山」の弾幕の器シリーズと異なり、次回作は「強い砲塔が少数」になるので足りると思う。
================================================
砲塔ID,デザインID,耐久力,X座標,Y座標
================================================
砲塔IDは攻撃設定の「場所」とリンクしている。攻撃を行う場合は、攻撃させたい砲塔のIDを設定する。デザインIDは現時点では利用していない。このIDによって砲塔のデザインを変更する予定。耐久度や座標はその名の通り。
移動と攻撃の設定
移動と攻撃の設定(1行)は、大まかに以下の様に/で区別されている。移動設定については前回から変更はない。
================================================
移動設定 / 攻撃設定 / コメント文
================================================
攻撃設定は「,(カンマ)」で区切り各攻撃を設定できる(上限は無い)。
================================================
各攻撃 , 各攻撃 , 各攻撃 , 各攻撃 , ・・・
================================================
各攻撃は以下の様に「_」で区切り詳細を設定する。
================================================
場所_砲種_攻撃ID_調整角度_ディレイ_制限時間
================================================
「場所」は前述の砲塔IDを利用し攻撃する砲塔を設定する。「砲種」は0が通常砲塔で1がスイング砲塔、2がランダム砲塔となっている。これらの攻撃パターンは動画中のResources/dataフォルダ内にあるatk_0.txt〜atk_2.txtで設定されている。
atk_x.txt内では前回紹介したパラメータによる攻撃データが格納され、何行目の攻撃を利用するかを3番目の「攻撃ID」で指定する。調整角度やディレイは動画の通り。制限時間は動画では利用していない、各攻撃は設定された弾数を出したら停止するようになっているが、強制的に指定した時間でも停止できるようにしてある。
次は分裂弾への対応
次の作業は、この仕組み発展させて分裂弾や東方の弾幕のように途中で弾道が変わる弾を実現する予定。
twitterを本格的に初めてみた。ブログの更新記事をつぶやくのがメイン。あとCocos2dやUnity、その他アプリ開発に関連するツイッターの方をフォローして情報も集められたらなぁと思います。
— 柳澤@ゲーム作るよ (@designdrill) 2015, 12月 28