C++初歩5 Doodle Jump風ゲーム
C++初歩5 Doodle Jump風ゲーム
前章と同様に、Sanjay Mahav著「 ゲームプログラミングC++」(翔泳社)で書かれているコンポーネントベースモデルを参考にDoodle Jump風ゲームを作成します。前章では、Componentの派生クラスは、こちらで用意してActorの派生クラスを追加するだけでしたが、本章では、前章で作成したFlappy Bird風ゲームを元に、Doodle Jump風ゲームに仕立て直していきます。
今回は、前章で作成したFlappy Bird風ゲームをDoodle Jump風ゲームに仕立て直すに当たり、不要なクラスを削除し、エラーの無い状態にします。
プレイヤーのドラゴンがジャンプするようにします。このジャンプの動きは、等加速度直線運動の方程式を適用した、重力のかかったジャンプにします。左右の方向キーで左右に動くようにもして、横方向に移動した場合は、放物線を描くジャンプにします。
また、画面の左に消えた場合は右から再登場させたり、画面の右に消えた場合は左から再登場させる、というラッピングをするようにもします。
足場を登場させます。足場は、ドラゴンがジャンプ可能な範囲で、適度に間隔をあけて、次から次へと上から登場するようにします。また、足場の上には、時々、バネやプロペラの付いた帽子が置かれるようにします。
実際のゲームでは、ドラゴンが足場にジャンプして、より高い足場に移動することで足場のスクロールダウンが起こりますが、この回では、ひとまず、自動的にスクロールダウンさせるようにします。
前章でも使った矩形の当たり判定で、プレイヤーのドラゴンと足場・バネ・プロペラ付き帽子との当たり判定をします。ドラゴンは、これらと当たる事で上昇し、ある一定の高さ以上になると、それ以上、上昇しない代わりに足場がスクロールダウンするようにします。前の回で行っていた自動的にスクロールダウンする記述を削除し、新たなスクロールに切り替えます。
バネに当たった場合は、バネが伸びた画像に切り替え、足場に当たった時より高くジャンプさせます。
プロペラ付きの帽子に当たった時は、帽子は消して、3.5秒間、等速で上昇させます。
プレイヤーのドラゴンがプロペラ付きの帽子に当たった時、足場の上の帽子が消える代わりに、ドラゴンが帽子をかぶった画像に切り替え、上昇するようにします。更に、3.5秒後に、上昇が停止した時には、元の帽子無しのドラゴンに戻り、かぶっていた帽子が、下に落下するようにします。
ドラゴンは、画面の最下位置でもジャンプする状態でしたが、これを止め、下に落下するようにします。
落下した後、ドラゴンを足場と共にスクロールアップさせ、画面最上部に当たったならば、再度、ドラゴンを落下させ、ゲームオーバーの表示を行うようにします。この時、ドラゴンを、ゆっくり回転させて、真っ逆さまに落ちる様に見せます。
縦横の格子柄の背景を追加します。この背景画像は足場のスクロールアップとスクロールダウンとと一緒にスクロールさせるようにします。
一つの背景用の画像を縦に3つ重ね、ラッピングして回転させるイメージで上下のスクロールに対応させます。
得点を画面上部に表示します。この得点は、足場がスクロールダウンした距離に応じて加算されるようにします。
また、効果音は、以下のタイミングで鳴らします。
足場でジャンプした時
バネでジャンプした時
プロペラ付き帽子で上昇した時
ドラゴンが足場の無い所に落ちた時
これで、Doodle Junp風ゲームの完成です。
エネミーを登場させたり、そのエネミーを攻撃したりする機能の追加については、ヒントを少し言っているだけですので、各自で挑戦してください。