GameAWeek4-3【STGを作ろう】完成編 敵出現管理難しかった

話が前後しますがついに完成
完成しただけでなく、リリースも果たすことができました…!!
//ここにゲーム

移動:上下左右
射撃:スペースキー

個人的に上手くできた点などを紹介

①プレイヤーの移動速度
はじめは左右上下の移動速度は全て均一でした
しかしそれでは機体の動きに違和感がありました
それもそのはずです
上下移動と比べて左右は画面比が長いため、移動速度が相対的に遅くなっていました
素早く移動し攻撃を避けながら接近して、確実に攻撃を当てることはSTGの基本的なリスクリターン要素
左右の移動速度を少し高く設定することで素早い移動が可能となりました
この感覚や考え方は色々なゲームで必要になりそう

②敵の出現Wave管理はList型で
STGといえば、次々と現れる敵を撃破していく…

え、どうやって出現管理するの…??
とりあえず出現位置を指定して、出てくるようにして…
だめでした

調べても専門的かつ複雑な内容の記事が多く
とてもでは無いけど初心者に理解できる内容ではありませんでしたが、色々調べた結果List型を使うとシンプルに管理できることが分かりました

敵出現の管理概要は
Waveクラスを作る
・出現させたい敵集団List<GameObject>を作成
・出現させたい敵をリストに格納
・出現させる位置をList<Vector3>で指定
・List<GameObject>が空になるまでfor文で繰り返し生成する

ゲーム進行管理クラスを作る
・List<wave>を作成
・作成したWaveを加える
・Waveの進行条件を設定
(自分の場合はそのWave内の敵機全滅が条件)
・現在の進行Wave数が、格納した合計Wave数を超えるまでwhile文で繰り返す
・while文を抜けたらボス登場

自分がやったことを言語化しているだけなので非常にわかりにくいと思います…
基礎的なスキルを使い、結果だけを重視したので汎用性は無いかなと思っています
今度作るときは複雑な管理方法を理解できるようになりたい

③STGを作ってみて
プログラミングの勉強をするならSTGがオススメ
と、言われている理由を実感しました
移動、接触、継承、配列…
基礎的な部分ができるなら充分作成可能なテーマ
だからこそ、創意工夫で様々な要素の追加が可能
GameAWeek1週したら、改めて挑戦したい
そう思えるテーマでした

この記事が気に入ったらサポートをしてみませんか?