ここからはいよいよゲームプログラミングの世界に入っていきます。最初に作るのは、「PONG」と呼ばれるピンポンゲームです。壁に跳ね返って上から落ちてくるボールを左右に動く「パドル」で打ち返します。打ち返すごとに点数が入りますが、受け損なってボールが下に落ちたらゲーム終了です。
それでは順番に少しづつ作っていきます。まず、第3章で作った「正方形が左右を往復するプログラム」と同じものを作ります。
図4ー1 正方形の往復動作プログラム
プログラム中で前回のものから2か所変更しています。図形が左右端に来たときのチェックを行っていた「posX = (画面幅 – 8)」と「posX = 0」をそれぞれ「posX ≧ (画面幅 – 8)」、「posX ≦ 0」にしています。これは移動のスピードを3などにした場合に画面端への到達を拾い損ねる(例えば128は3で割り切れないため)ことを防ぐ目的です。
ゲーム機にアップロードして、一辺「8」の正方形が左右に跳ね返って動くことを確認してください。
せっかくですのでボールの形を「正方形」から「丸」に変更しておきましょう。「長
方形を描画」ブロックを削除して代わりに「円を塗りつぶし」ブロックを追加します。
円の半径は「4」としてください。 ブロックを削除するときに「Ctrl」キーを押しながらつまむと、下のブロックがくっついてきません。
図4ー2 円に変更
なお長方形の場合の作画位置の基準は左上の角でしたが、円の場合には位置の基準が
円の中心となります。このため「円を塗りつぶし」ブロックの「Y」には、円が画面か
らはみ出ないように「4」を設定します。また右と左の壁との衝突判定に用いる値は、
それぞれ「画面幅 – 4」、「4」となります。
ゲーム機にアップロードして、半径4の円が左右に往復することを確認してください。
図4ー3 円の座標
図4ー4 円の往復動作(実行画面)
ここでひとつ変更しておきます。例えば円の大きさが少し小さいなと感じて、円の半径を「4」から「5」に変更する場合を考えます。前のプログラムでは円の半径を直接「4」としましたから、プログラムの中で「円の半径」の意味で使っている「4」をすべて探してそれらを「5」に書き換える必要があります。今のところで5箇所の変更が必要です。これはプログラムの分量が増えてきたときにはなかなか面倒ですし、さらにミス(プログラムの場合「バグ」と言います。)の温床となります。
このようなときには「円の半径」に対しても「変数」を使って、意味のある名前(変数名)をつけておくと便利です。ただしこの場合「円の半径」は一応ゲームの実行中に変化しないということで、「定数」となります。
新たに「ballRad」(ball radius(半径))という名前で変数を作り、「ballRadに4をセット」のブロックを「ゲーム初期化」ブロックの下につなげてください。そしてプログラム中の5箇所の「4」を「ballRad」ブロックに変更します。
今後もし「円の半径」を変更したい場合には、「ballRadに4をセット」ブロックの数値のみを書き換えればよいことになります。
図4ー5 「ballRad」を導入
コメント