第2.10話 共同作業
弾といってもたくさん種類があるが、まずは、まっすぐ飛ぶ弾を作る。羽が生えた蛇と一緒で、同じ動きをするものをたくさん扱うので、弾のプログラムと、弾全体を扱うプログラムを考える。
まっすぐ飛ぶ弾のプログラムは簡単で、最初にプレイヤーの操作する飛行機の位置を受け取り、そこをスタート地点とする。敵は右からやってくるので、弾は反対の右に進むようにする。後は、画面の端を通り過ぎたり、敵と当たったりすると消えるようにする処理だ。敵と同じように、判定を弾のプログラムで行い、マネージャーで消す。敵全体を管理するプログラムをエネミーマネージャーと名付けたので、バレットマネージャーとでも名付けよう。
敵との当たり判定は次回だなと、考えていると、部屋に人が入ってくる音がした。
「遅れてすまん」
岡林先生は軽く右手を上げながら、ホワイトボードの方へ向かう。ホワイトボードの前の教師用であろうデスクトップパソコンを起動すると、椅子に座った。
待ってないので遅れてませんよと、冗談を言おうか迷い、飲み込んだ。
「顧問だからな」
心の中を読まれたのだろうか。俺にとっての第二の隆也だ。気を付けなければ。
岡林先生はさっきの俺と同じ姿勢になった。いびきはかいていないが、おそらく寝ているのだろう。
「何しに来てるんだろ」
秋晴さんが、顔だけあちらに向けて言った。
「さぼりに来てるんだろ、俺達も気楽にできていいじゃないか」
卒業した先輩達は、大会で賞を取るなど、それなりの結果を残したらしい。過去の栄光を取り戻そうなどと、変なことを言う輩よりは、よっぽどいい。
秋晴さんはすぐにパソコンを向き、作業に戻った。俺も作業に戻る。
まずは、まっすぐ飛ぶ弾を作り、次に弾を管理するバレットマネージャーを作る。
弾を作るのに必要な情報は、飛行機や敵と共通している部分が多いので、キャラクタークラスを基底クラスとして用いる。キャラクターではない弾にも使うのなら、Characterという名前は変えたほうがいいのかもしれないが、どうせプログラムを見るのは俺だけなので、面倒なことは避ける。
羽が生えた蛇と同じように、画面の端を超えたかどうかを確認できる関数を作る。そして、バレットマネージャーのアップデート関数で判定を取得し、超えた時にその弾を消すようにする。
まっすぐ飛ぶ弾のプログラムは、羽が生えた蛇とあまり変わらない。気を付けるべきなのは、バレットマネージャーである。羽が生えた蛇を生成するタイミングは、あらかじめ決めておくので、エネミーマネージャーだけで管理できた。弾は、プレイヤーが特定の操作をした時に生成されるのだ。特定の操作とは、発射ボタンを押した時だ。とりあえず、発射ボタンをスペースキーとする。バレットマネージャーに、スペースキーが押されたか否かの値を渡す必要がある。そしてもう一つ、弾はプレイヤーの飛行機から飛ばすので、飛行機の位置も渡す必要がある。
バレットマネージャーを作成している途中に思い出したのだが、飛行機の操作に使うキーの取得を、飛行機のプログラムでやっていた。弾など、他の操作でもキーの取得をしたいので、キーの取得を管理するプログラムを新しく作ってもいいかもしれない。
とりあえず、スペースキーの取得を、メインループで行う。その結果を、メインループの中に書いたバレットマネージャーのアップデート関数の引数に入れる。
また、弾の生成には、飛行機の位置を取得する必要がある。飛行機のプログラムを開き、位置を取得する関数を作る。横座標を取得する関数をGetPosX、縦座標をGetPosYと名付けた。そして、バレットマネージャーのアップデート関数の引数にこの二つも入れる。
とりあえず、実行して動くことを確認する。どれくらいの間隔で発射されるかのプログラムを書いていないので、弾が重なってレーザービームの様に出てくる。弾と敵の当たり判定も作っていないので、敵と重なっても、通り過ぎていく。
気づけば、秋晴さんは身支度をしていた。岡林先生は席を立ち、背伸びをしている。俺も作業に区切りをつける。
シューティングゲームのプロジェクトのフォルダを圧縮する。昨日作った共有フォルダを開き、そこに圧縮したプロジェクトフォルダをアップロードする。これで、自宅でも続きの作業をすることができる。
すでに秋晴さんは、リュックを背負っていた。まだ部室を出ていないのは、俺が作業を終えていなかったからだろう。戸締りとは損な役割である。
「鍵は俺が閉めとくわ、どうせすぐ職員室に戻るから」
そう言うと岡林先生は、秋晴さんから鍵を受け取った。
「ありがとうございます」
お礼を言った秋晴さんは、ブレザーのポケットに手を突っ込む。
岡林先生は椅子に座り、ペンをホワイトボードの上で走らせていた。戸締りはもう少し後になりそうなので、お茶でも飲もうかとスクールバッグの中に手を入れる。手がペットボトルを見つけたときに気づく。秋晴さんはまだ帰らずにいた。顔は窓を向いていたが、体をこちらに向けていた。急いでスクールバッグから手を抜き、チャックを閉める。
「帰らないのか?」
「校門まで一緒にどう?」
やはり待っていたのか。
座っている俺は、立っている秋晴さんから見下ろされる形になる。やはりこうして顔を見合わせると、睨まれているようで怖い。
スクールバッグを背負って、返事をする。
「じゃあ、帰るか」
結局、何も喋らないまま、校門前に着いた。
「えっとじゃあ、お疲れ」
「お疲れ」
別れた後、秋晴さんは、俺が学校に来るときに降りるバス停の前で止まった。つまり、俺と反対方向になる。いつものバスに乗って、学校を通り過ぎれば、秋晴さんの家に行けるのだろうか。
バスでどこまで行けるかなんて、考えたことも無かった。隆也達に感化させられたのだろうか。
自分の口から、大きな息が吐かれたことに気づく。
どうでもいいな。
大きなエンジン音が聞こえたかと思うと、向かい側にバスが来た。そのバスに乗ったのだろう、秋晴さんはいなくなった。
多分、ここが俺の世界の、端っこなのだろう。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます