第2.13話 共同作業

 ほんの半時間ほど早く帰ってきただけだが、やはり違うものだ。まず明るさが違う。この季節は七時に近づくと、太陽の光なんて全くなく、いつもは、スマホのライトを使って玄関の鍵穴を照らしていた。今日は、明るいとまでは言わないまでも、ライトを使うことなく見えた。

 テレビを付ける。いつもなら、アナウンサーが六時台のニュースをお辞儀で締めくくっているところだが、まだ天気予報をやっていた。

 自室からノートパソコンを持ってきて、リビングのテーブルの上で開けた。たまにはここで作業するのも悪くない。

 共有フォルダを開き、シューティングゲームのプロジェクトをダウンロードして展開する。展開出来たらプロジェクトを開けて、実行して、動くことを確認する。

 敵と弾の当たり判定を、エネミーマネージャーで書くことにした。

 飛行機と敵の当たり判定もあるので、当たり判定を関数化する。

 CollisionDetectionという名前でプログラムファイルを追加して、CircleCollisionという名前の関数を作る。当たり判定の中でも一番簡単であろう、円同士の当たり判定だ。

 円同士の当たり判定には、お互いの位置と大きさが必要になる。大きさは、円の半径として使う。

 判定方法は、まず、お互いの距離を測る。相手の横の位置から自分の横の位置を引いて2乗したものと、相手の縦の位置から自分の縦の位置を引いて2乗したものを足し合わせる。足し合わせたものの平方根を求めれば、それが距離となる。次に自分の大きさと相手の大きさを合わせ、判定の範囲を作る。最後に、お互いの距離と範囲のどちらの値が大きいかを判定し、距離の方が大きければ当たっていない、小さければ当たっているということになる。

 早速作った関数を使う。

 エネミーマネージャーの引数に、バレットマネージャーを追加する。

 エネミーマネージャーのアップデート関数で、羽が生えた蛇の繰り返し処理にいく。羽が生えた蛇のアップデート関数の下に、まっすぐ飛ぶ弾の繰り返し処理を作る。そして、その繰り返し処理の中に、当たり判定を書く。つまり、敵と弾の数を掛け合わせただけ、当たり判定を行うのだ。

 次に、当たったときの処理を考える。まずは、まっすぐ飛ぶ弾からだ。

 キャラクタークラスにHPがあるので、弾が消えるかの判定も、HPが0かどうかで決めることにする。まっすぐ飛ぶ弾には、画面を超えた時に消すという判定をすでに書いていたので、そこに付け足す。

 弾が何かに当たった時に呼び出すための関数も必要だ。当たった時にHPを減らす。そして、弱い敵とまっすぐ飛ぶ弾の当たり判定のところに、作った関数を呼び出す。

 まっすぐ飛ぶ弾のコンストラクタでHPに1を代入して、実行してみる。弾が羽が生えた蛇と当たった時に消えたことが確認できた。

 当たった時の羽が生えた蛇の処理も書きたかったが、そろそろお風呂を洗わないといけない。今日のシューティングゲーム制作はこのくらいにしておこう。

 お風呂を洗い終え、夕食を作ることにする。お母さんから、唐揚げを買ってくると連絡があったので、それに合いそうなものを一品考える。

 そういえば、中学生の頃に何度か行った餃子屋では、ご飯を頼んだ時に、スープが付いてきた。確かあれは、具にワカメと溶き卵が入っていた。そこに中華だしとゴマを加えれば、それっぽくなるかもしれない。

 炊飯器の中身を見て、まだご飯があることを確認する。とりあえず、スープだけ作ってしまおう。

 卵をかき混ぜながら、この後のことを考えていた。シューティングゲームの制作を進めるのもいいが、ゲームエンジンも触りたいという欲もある。

 かき混ぜた卵を、小鍋に円を描くように入れる。小鍋の中はすでに沸騰していて、ワカメが泳いでいる。キューブ状の中華だしを1つ入れて、よくかき混ぜる。お湯が少し濁り、だしが溶けたと思ったところで、味見をする。少し薄い。しかし、今回使った中華だしはキューブ状で、もう一つ入れると濃くなってしまう。何か使えるものはないかと、引き出しを開ける。ついでに、残った乾燥ワカメをしまう。奥に粉末タイプの中華だしを見つけたので、引っ張り出す。少し古いが、賞味期限の数字は、もう少し先を指していた。見た目に問題はない。鼻を近づけ、匂いをかいでみるが、こちらも問題ない。大丈夫だな、と声が出た。入れすぎないように、慎重に振りかける。味見をする。よし、これでいいだろう。最後に、ゴマを振りかけて、火を止め、蓋をした。

 予想よりも、美味しくできたスープの味見を御代わりしながら考える。シューティングゲーム制作と勉強を兼ねることは出来ないだろうか。何かしらの数式を使うことで、面白い弾を作れるかもしれない。例えば、sin、cosを使うことで、くねくねと動く弾を作れる。

 帰宅したお母さんから唐揚げを貰い、先に一人で食べた。その間、少し考えてみたが、凝った弾は思いつかなかった。今まであまり数学を勉強してこなかった奴が、数式を使った、凝った弾を作ろうというのが、そもそも無理な話である。

 結局、下に攻撃するための、爆弾を作ることにした。そして、ただ真下に一定のスピードで放つのではなく、重力や慣性の法則を参考にしよう。多少は勉強になるかもしれない。それにそっちの方が、ゲームとしても面白そうだ。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る