第2.29話 共同作業

 昨日はゲームをしたので、今日は少し根を詰めないといけない。背伸びをしてからノートパソコンを開く。

 しかし、こうやって家でも作業が出来るのなら、第二コンピュータ室が無くても続けられるのではないだろうか。いや、それだと怠けてしまう。プログラムを書くだけならまだしも、誰かと何かを共有するというのは、それなりに疲れるものだ。切り替えをする時間が欲しい。そしてそれは、第二コンピュータ室に向かう途中だとか、そういう瞬間なのだろう。

 今日、優先してやることは、メデューサの毒攻撃のプログラムを書くことである。

 佐久間から、シューティングゲームに出てくるボスは、弱い敵を衛星のように付きまとわせている事が多いと聞いた。それを習って、当たったら毒状態になってしまう玉をメデューサの周りで漂わせれば、それなりに面白いかもしれない。

 もし時間が余るようであれば、重力を考慮した爆弾に慣性を加えて、シューティングゲームに組み込みたい。下を攻撃できなくてもクリア出来るゲームではあるが、まっすぐ飛ぶ弾だけでは、物足りない気がする。

 どういうプログラムを書くのかは、昨日頭の中で考えたので、後は実装するだけだ。

 当たれば毒状態にする玉を、PoisonBallと名付けよう。これは今考えた。

 ポイズンボールは、メデューサの位置を原点として動かすため、常にメデューサの位置を入れる必要がある。そして、円運動だが、これは三角関数を使う。横の位置がcosで縦の位置がsinだ。cosとsinは三角形でいうところの、斜辺1に対しての底辺や高さの大きさであり、1から-1までの値しか得られない。そのまま使っても、ほとんど変化しないだろう。そのため、何かしらの値を掛ける必要がある。いわゆる半径というものだ。ポイズンボールは、飛行機を狙ったものなので、メデューサと飛行機の横の距離を半径としよう。 

 まだ秋晴さんに、ポイズンボールの絵を頼んでないので、画面に描画されるのはただの円だ。紫色にする。

 一旦実行して、動かしてみる。

 メデューサが表示されると共に、紫色の円も出てきた。メデューサの周りを回り、飛行機に向かっては通り過ぎていく。メデューサと飛行機の横の距離を考慮した軌道のため、綺麗な円ではなく、横に平べったくなったり縦に平べったくなったりする。大方、期待通りの動きだ。

 しかし、どれだけ飛行機を動かしても避けきれない。それもそのはずである。常に飛行機との距離を考慮していては、円の大きさも変わり続けてしまう。修正しなければ。

 メデューサの足元を通った瞬間だけ、飛行機との距離を取得するようにして、もう一度実行してみる。今度は、動かして避けることが出来た。

 ポイズンボールの動きはこれでいいだろう。後は、ポイズンボールと飛行機の当たり判定だ。これは前にも使った円同士の当たり判定を用いる。そして、当たった時に飛行機を毒状態にする関数を呼び出す。

 もう一度実行してみる。まだ、飛行機が毒状態になった時の処理を書いていないため、先ほどと結果は変わらないはずだ。

 まだ時間が少しあるので、爆弾に慣性を考慮させてみる。

 慣性の法則というものを、俺はよく知らないので、ネットで調べてみる。どうやら、物体の運動は他からの影響を受けない限り変化しない、というものらしい。 

 よくわからないが、飛行機から爆弾を落とせば、落とした時点での飛行機の加速度を引き継いだうえで、重力の働きをするということだろうか。

 一旦実装してみる。

 爆弾のスピードを、落とす時に決めるのだが、飛行機が動いている時は飛行機のスピードを、止まっている時は0を入れるようにした。

 また、まっすぐ飛ぶ弾と違って動きがわかりづらい。そのため、今落としたらどんな軌道を描くかを、点をいくつか描画することで可視化できるようにしてみた。といっても内容は単純で、放物線の公式を用いただけである。

 そして次は操作方法だ。Bombの頭文字であるBキーを使うというのはすぐに決まった。問題は軌道を常に描くかである。

 実際にゲームとして動いているところを想像してみたが、やはり落とす時だけ軌道を見えるようにするのがいいだろう。キーを押している間に軌道を描いて、離した瞬間に爆弾を落とせばいいのだ。これでちょっとはゲームの要素として成り立つのではないだろうか。

 実行して動かしてみる。

 飛行機を動かさないままBキーを押すと、飛行機の真下に向かって点が描画されていった。Bキーを話すと、点に沿って爆弾が落下していく。

 次に、飛行機を動かしながらBキーを押してみる。飛行機から前に向かい、だんだんと下に向かって点が描画された。そのままBキーを離して爆弾を落とすと、横には飛行機と同じ向き同じスピードで進み、下には速度を上げながら落ちていった。

 成功である。

 秋晴さんに操作方法の絵を頼んでいるため、Bキーを使って爆弾を落とすことを伝えておく。すぐに返信は来なかったが、まぁすぐに対応してくれるだろう。

 疲れた目を閉じて、軽い仮眠を取ろうとする。この頃、束の間の惰眠を気持ちいいと思うようになった。

 これが充実しているということなのだろうか。わからないが、隆也には言えないな。

 


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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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