C++初歩4 Flappy Bird風ゲーム
C++初歩4 Flappy Bird風ゲーム
前章では、Sanjay Mahav著「 ゲームプログラミングC++」(翔泳社)で書かれているコンポーネントベースモデルを参考にPong Gameを作成しましたが、本章では、Pong Gameと同じ構造をもつベースプログラムを用意し、これを使ってFlappy Bird風ゲームを作成します。Flappy Bird風ゲームでは、画像ファイルを用意し、この画像を使ってゲームを作成していきますが、今回は背景の山とプレイヤーの鳥を表示します。
背景に雲を追加します。更に、山と雲を横スクロールさせ、鳥が飛んでいるように見せます。また、山と雲のスクロールスピードを変えることで、背景に遠近感を持たせます。これをパララックス効果(視差効果)といいます。
背景色は水色にして、空を表していますが、時間の経過と共に黒にして、昼と夜を表すようにします。
間に隙間のあるパイプを1本、右側から生成し、左に移動させます。また、隙間の位置はランダムにします。
スペースキーを押すと鳥を上昇させ、スペースキーを押さないと、下降するようにします。更に、鳥が上昇する時、鳥の画像を上に30°傾け、下降する時は下に30°傾けることで、鳥が上昇したり下降したりする動きを、自然な動きに近づけます。
鳥とパイプの間で、当たり判定を行い、鳥とパイプが当たったならば、鳥を消滅させます。当たり判定は、前章で使った矩形の当たり判定を使います。
一定間隔でパイプが次々と右側から出てくるようにします。更に、時間の経過と共に、パイプの隙間が狭くなるようにして、ゲームの難易度が上がるようにします。
得点表示を追加し、鳥がパイプの隙間を抜けると得点がアップするようにします。また、鳥がパイプに当たって消えると、ゲームオーバー表示するようにします。
以下のタイミングで効果を鳴らすようにします。
得点がアップした時
ゲームオーバになった時
また、この動画を公開した日がクリスマス・イヴだったことから、ゲームオーバになった時、ある点数以上だったならば、サンタクロースの画像と共に、クリスマスイメージのBGMが流れる修正を紹介しています。