第2.23話 共同作業
昨日は雨だった。その分を取り戻すと言わんばかりに、今日は良く晴れている。うざいので、カーテンを閉めた。
第二コンピュータ室は今日も、俺と秋晴さんだけである。秋晴さんは、色んなゲームのプレイ動画を見ている。というのも、次に描いてもらうのがUIであり、参考になるものを探しているのだ。
時折、自分の知っているゲームが流れて、ついつい目が移ってしまう。気を引き締めなくては。まだ自分の作業はたくさん残っている。
俺の次の作業は、背景とボスであるメデューサのプログラムを書くことだ。
シューティングゲームの重要度として、背景とボスはそんなに変わらない。ということで、メデューサのプログラムを先に書くことにした。メデューサの方が、プログラムをたくさん書かないといけないからだ。面倒なことは先に終わらせたい。
このシューティングゲームに出てくる敵は、羽が生えた蛇とメデューサの二種類のみ、互いに手下とボスという関係だ。プログラムの中身には共通しているところがたくさんある。少しでも時間を短縮するために、羽が生えた蛇のプログラムを使いまわすことにした。手下のプログラムを使いまわされるメデューサの気持ちは、プログラマーの俺には関係の無い事である。
羽が生えた蛇のプログラムをコピーして、いらないところを消す。左に向かってまっすぐ進む処理は、メデューサにはいらないだろう。メデューサにも動きをつけるが、それを考えるのはまた後だ。
まず考えるのは、メデューサを出現させるタイミングだ。最初は弱い敵を出し、なにかしらの条件を得て、ボスを出現させる。とりあえず、一定の時間が経過したらでいいだろう。
ボスを出現させるかどうかという値を入れる変数を作るのだが、これをメデューサのプログラムではなく、エネミーマネージャーで扱うことにする。というのも、ボスが出現しているかどうかは、敵以外のプログラムにも影響するからだ。メデューサが出てきた時に、霧を出したい。
羽が生えた蛇と同様、メデューサのアップデート関数や描画関数も、エネミーマネージャーで呼び出す。また、ボスが出現するタイミングを、一定時間経過してからという条件にするため、その経過時間を入れる変数を作る。ボスが出現しているという判定の時のみ、メデューサのアップデート関数と描画関数を呼び出すのだ。
そして、少し考えることがある。メデューサがいる時に、羽が生えた蛇を出現させるかである。もちろん、すでに画面に出てきている蛇は、画面の左に到達するまで描画させる。とりあえず、秋晴さんに相談することにした。せっかく隣にいるのだから。
顔だけ秋晴さんの方に向ける。
「ボスがいる時に弱い敵を出すか迷ってるんだが、秋晴さんはどう思う?」
「いない時だけでいいんじゃない?」
さすが秋晴さん、即断即決である。
ということで、ボスが出現しているという判定の時に、メデューサのアップデート関数を呼び出し、そうでないない時に、羽が生えた蛇を生成する関数を呼び出す。ここで気を付けないといけないのは、羽が生えた蛇のアップデート関数は、ボスがいるいない関係なく呼び出すことだ。じゃないと、すでに画面にいる羽が生えた蛇の動きが止まってしまう。
ボスが出現する条件を、シューティングゲームを開始して20秒経過してからにする。一旦実行してみる。
最初、羽が生えた蛇だけ出てきて、20秒経ったらメデューサが出てきた。メデューサがいる時は、羽が生えた蛇が出てこないというのも、しっかりと反映されている。
メデューサが出てくるようになったところで、次は動きを考える。現時点では描画はされているがまったく動かないという状態なので、ゲームとしては不格好だ。
最初に考えるのは、飛行機の動きを考慮するかである。考慮しないのであれば、決まった動きを繰り返せばいい。考慮するのであれば、飛行機の位置などを取得しなければならない。
ボスの動きというのは、ゲームバランスに大きく影響する。しっかりと考えなければ。
よし、飛行機の動きを考慮しよう。適当に動きを合わせれば、それっぽくなるだろう。一人の素人プログラマーに出来ることなんて、限られているのだ。ゲームバランスなんて少し崩れたくらいが丁度いい。
さて、飛行機の動きを考慮するとして、実際にどのような動きをさせるのか。それを考えようとしたときに、下校時刻に近づいていることに気づく。仕方ないので、パソコンを閉じる。
秋晴さんはまだ作業をしているが、すぐに止めるだろう。
スクールバッグを背負い、お疲れと一声掛けて、部屋を出た。
廊下を歩きながら、メデューサについて考える。そういえば、メデューサは飛行機を攻撃するんだったと思い出す。毒と石化、飛行機の状態に対する攻撃だ。攻撃方法を先に考えれば、動きも思いつくはずである。
自ずと、廊下を歩くスピードが上がった。バスが来る時間は変わらないのに。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます