第2.31話 共同作業
先ほど、秋晴さんとの作業通話を終えた。お風呂と夕食を終え、さっそく作業に取り掛かる。時間が無いわけではないが、早く終えるに越したことはないだろう。
やることを簡単にまとめてみる。飛行機と敵の当たり判定、飛行機のHP、メデューサと弾の当たり判定、飛行機の状態の可視化、クリアとゲームオーバー、背景、ざっと上げればこんなものだろうか。
リストにすれば結構あるように見えるが、ひとつひとつはそこまで難しくない。おそらく、今日と明日で出来るだろう。
まずは、飛行機のHPから実装しよう。敵との当たり判定を実装する時のテストも、HPを減らすことでわかりやすくなる。
まずはUIから用意する。使っているライブラリには、四角形を描画する関数も用意されているため、これを使おう。最大HPを白、現在のHPを緑にして、重ねて描画すれば、どれだけHPが削れているのかが見やすくなるはずだ。
そして、指定した位置に指定したサイズで描画するのだが、このサイズが肝となる。HPが減ればその分だけ、横のサイズを小さくしなければならない。もしHPを回復することがあるのであれば、その分だけ大きくもする。
計算方法は簡単で、最大HPと現在のHPの割合を求めて、横のサイズに掛けるだけである。
次に、指定した値だけダメージを与える関数を作る。毒状態の時や、敵と当たった時に呼び出すのだ。
関数を作ったら、さっそく毒状態の時に呼び出してみる。とりあえず、1秒毎に呼び出す処理を書いてみた。
最大HPを設定することと、HPが0未満にならないようにする処理も忘れてはいけない。
これでHPの実装は出来ただろう。実行して確認してみる。
ポイズンボールと当たってから、1秒毎に緑色の四角形が削られていくのが確認できた。
次は、敵との当たり判定を作って、そちらでも飛行機にダメージを与える関数を呼び出そう。
敵との当たり判定だが、今まで使った当たり判定を使いまわすだけである。
まずは、羽が生えた蛇のプログラムで、消すかどうかを入れるbool型の変数と、それを呼び出す関数を作る。そして、判定を消すにする、つまりtrueを入れる関数も作る。
そして、羽が生えた蛇との当たり判定の処理を書き、当たった時に、飛行機にダメージを与える関数を呼び出すとともに、羽が生えた蛇を消す関数も呼び出す。
実行して、動かしてみる。
飛行機を羽が生えた蛇にぶつけると、蛇が消えると同時に、HPが減ったのを確認できた。
これで、羽が生えた蛇のプログラムは、一旦完成ということでいいだろう。
メデューサと飛行機の当たり判定はどうしようかと迷ったが、さすがに即死させるわけにはいかないので、ぶつかっても何もしないことにした。
次に、メデューサと弾の当たり判定を実装する。これに関して気をつけるところは、メデューサが縦に大きいということだろう。他の当たり判定と同じように、円同士の計算をしてしまうと、すり抜けるところが出てきてしまう。
対策として、円同士の当たり判定を二つ縦に並べてみることにした。これで、メデューサの形に少しでも近づけることが出来る。
動かしてみて、メデューサと当たった時に弾が消えることを確認した。
ついでに、クリアとゲームオーバーの実装もすることにした。
時間が無いので、簡易的なものにしよう。本当は、スタートシーンやゲームシーンと同じように、クリアとゲームオーバーも1つのシーンとして扱いたかったのだが、UIとしてゲーム画面に画像を表示するだけにする。秋晴さんに頼んだ大文字のアルファベットを書いた画像だ。今回は代替えとして、ライブラリの機能で文字を描画させることにする。
まずは、クリアしたかどうかとゲームオーバーかどうかを入れるための変数を作る。
そして、このクリアしたかどうかゲームオーバーしたかどうかを常に判定して、敵を生成するかなどを決めていく。気を付けなければいけないことはせいぜい、クリアした後でゲームオーバーにしたり、その逆のことをしたりしないことだろう。
次に、クリアとゲームオーバーの条件を考える。とりあえず、クリアはボスを倒したとき、つまりメデューサのHPを0にした時にして、ゲームオーバーは飛行機のHPが0になった時にしよう。
そして、クリアもしくはゲームオーバーの画像が出てる間、エンターキーを押すとスタート画面に戻る処理も書く。
実行して動かしてみる。
敵とぶつかって飛行機のHPを0にすると、Gameoverという文字が描画された。エンターキーを押して、スタート画面に戻ることも確認する。そのまま次は、メデューサを倒してみる。Clearという文字とスコアが描画された。いちおうここでもエンターキーを押して、スタート画面に戻ることも確認した。
やっつけ仕事ではあったが、それなりに進めることが出来た。喜びと肩こり防止を兼ねて、両腕を上げる。なぜかあくびが出た。今日はぐっすり眠れそうだ。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます