Twitterのタイムラインで「配列を知らずにシューティングゲーム作る人もいた」というパワーワードを聞いてから頭から抜けなかったので、作ろうとしてみました。
テーマは初診わするべからず(始めた頃のダメダメっぷりを忘れるべからず)
配列を使わずシューティング
作ろうとしてみました…というか、配列を使わずシューティングは自分も以前に作った記憶があります。 確か高校の展示で何となくパソコン使いたかったのでゲームを作ってみた的な。コンピューター部のPC借りてコッソリ作ってました。
最終的にはシューティングという名の別のなにか(回避ゲーム)になった事は覚えています。あと画像が用意出来なくて文字で全部代用したことも。
弾の定義
まず最初の前提として配列を使わず弾を動かします。今回使ったのはUnityですが昔の自分はコンポーネント指向なんて間違いなく理解してなかったので、今回はMain.csを用意してソコに全部書きます。最初の自分はそうしてました。
まず複数の動く弾が存在します。コレを解決する画期的な方法は、変数をたくさん用意することです。 ゲームを初めて作ったときには構造体とかクラスも知らなかったので(というか言語的になかった)座標だけです。
おおっと名前が酷い? 最初の自分は確かにこう書いてました。それで変数がどれがどれかわからなくなった的な。HAHAHA
まぁ実際にはpppaとかppaとかppbそうのを合わせて100発分は作ったハズです。リネーム機能?知らない子ですね。
あとは記憶ではxとyが独立した変数として存在したので、その管理も割と大変なことになっていたという記憶ががが
弾を移動させる
次に弾を移動させます。まぁ移動方法は固定で下に移動するだけです。
そこで昔の自分は華麗に関数で移動処理を実装します。
自分の記憶での移動の関数名はコレだった気がします。日記には、なにか画期的な意味があったが思い出せんというコメントを書いたような、書かなかったような。
しかし、この関数だけでたくさんの弾を移動する事は出来ません。どうするかって?こうするんだよ
for文が使えないなら、その数だけ処理を繰り返せばいいじゃない。
ちなみに当たり判定も似たような感じです。
戻り値が無いのは一発即死だからです。コードで言うとApplication.Quit()
感想
こんな感じでクッソ簡単なゲームを作ろうと思いましたが、流石に飽きたので終了。 恐るべきはこのノリでゲームを作りきってしまった昔の自分か…
まぁ、あの時文化祭に展示して作る楽しさを知ったからこそ、今の自分があるわけで。今思うとアレだけど良い思い出です。作りきってなかったら多分いまごろ自分は別のことをしています。
勉強して効率的に作れる事も大切ですが、まず作ってみる…というのが自分にとって良い勉強になりました
え?コード全文? 勘弁して下しあ