初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

子どもでもわかる Scratch 入門

11.ふうせん割りゲームを作ろう その4

 

[ 9. ふうせん割りゲームを作ろう その3 ] の続きです。

風船を1つずつ表示させて、変数を登録する所まで説明しました。

 

 

残り時間を設定しよう

いままでは10個の風船が出現するだけでした。
これを 15秒間、1つずつ風船が出現するように変更します。
前回作った残り時間変数を使います。

 

まず、変数をクリックしてスコアを0にするを移動します。
画像ではスコアを0にするとなってますが、残り時間を0にするになっている場合もあります。

残り時間変数の初期セットをする

 

変数の名前をクリックすると小さいメニューが出ます。
変数を残り時間に変更して、セットする値を15にします。

残り時間を15にする

 

残り時間のある間は繰り返す、という処理を作っていきます。

制御をクリックして( )まで繰り返すを何もないところへ移動します。

条件が成立するまで繰り返すを移動

 

次に、演算をクリックして2つの値が等しいかを移動してハメます。

2つの値が等しいか比較する

 

変数カテゴリから残り時間変数をはめ込みます。
そして片方を0に変更しましょう。
これで残り時間が0になるまで繰り返す、という条件になります。
続いてスコアを1ずつ変えるをこの繰り返しの中に入れます。

残り時間が0になるまで繰り返す処理

 

変数をスコアから残り時間に変更して、セットする値を-1にします。
これで0になるまで1ずつ減っていく仕組みができました。

カウントダウンするように-1する

 

10回繰り返すだった処理を、残り時間が0まで繰り返すに差し替えます。
まず、クローンの部分を移動して10回繰り返すを消しましょう。
あとは残り時間が0まで繰り返すをくっつけて完成です。

10回繰り返すを、残り時間が0まで繰り返すに差し替え

実行してみて下さい。
15秒からカウントダウンして0になると風船が出なくなります。

 

 

スコアを入れよう

風船をクリックしたらスコアに加算します。
変数スコアを初期化するのと、クリック時の加算を行います。

 

変数カテゴリからスコアを0にするを移動します。

続いてスコアを1ずつ変えるこのスプライトが押されたときの下に入れます。
変数名が違っている場合には、下の画像と同じように変更してください。

スコア変数の初期化と、得点時の処理をする

スコアの処理はこれだけです。
実行してスコアが加算されるか試してみましょう。

 

 

ゲームオーバーを表示しよう

ゲームオーバーを表示します。
簡単に作るために、風船に「ゲームオーバー」と言わせるだけにします。
風船はオリジナルスプライトを使います。
クローン風船は移動後に消してしまうので使えません。

 

オリジナル風船をステージの中央に持ってきます。
動きカテゴリからx座標を()y座標を()にするを移動します。
このときx座標は-10、y座標は-75に変更します。

オリジナル風船をステージの中央に配置する

 

風船を見えるようにします。
見た目カテゴリから表示するを移動しましょう。

オリジナル風船を見えるようにする

 

同じく見た目カテゴリからこんにちはと言うを移動します。
そして「ゲームオーバー」に変更しましょう。

ゲームオーバーと言わせる

 

これで作業はすべて完了しました。
実行してみましょう。

画面が表示されないときはここをクリック

 

 

バグ取りをしよう

プログラム上の不具合をバグと言います。
ゲーム制作の現場では、仕様上の欠陥や絵の不具合もバグと呼んでます。
そしてバグ (不具合) を修正する作業のことを「バグを取る」と言います

ほとんどの場合、プログラムにはバグがあります。
バグの無いプログラムを組むこともできるのかもしれませんが、
きっとどこかにバグがあるのだろう
と思いながら作業している方が、結果的にバグの少ないプログラムになると思います。

 

さて、実は今作ったゲームにも大きなバグがあります。
プレイしてみて変なところはなかったですか?
ゲームオーバーを表示しているとき風船をクリックしてみて下さい。
そう、スコアが入ってしまいます
ゲームオーバーになっているのに、点が入ったら変ですよね。これがバグです。

 

ゲームオーバーではない状態を判断するにはどうしますか?
そうです、残り時間があるかどうかを見ればいいのです。
この仕組みを作っていきましょう。

制御カテゴリからもし ( ) ならを何もないところへ移動します。
演算カテゴリから ( ) > ( ) をはめ込みます。
変数カテゴリから残り時間を左側にはめ込みます。
そして右側には0を入力します。

ゲームオーバーではない状態を判断する仕組みを作る

この条件式は残り時間が0以上なら実行するという処理になります。
つまり、ゲームオーバー(残り時間が0)の時には実行されません。

 

これをクリックされた時のスコア加算の処理へ組み込みます。

ゲームオーバー判断処理をクリック時へ組み込む

これで残り時間があるときに限り、スコアが加算されるようになりました。

 

 

音を鳴らしてみよう

風船をクリックして消えるタイミングで音を鳴らしてみましょう。
音は風船のスプライトに用意されていた Pop を使います。

 

カテゴリからPopの音を鳴らすをスコア加算の下へ移動します。

音を鳴らす

実行しましょう。風船をクリックしたときポンと鳴れば成功です。

 

 

タイトルを入れよう

タイトルは、ページの上の真ん中あたりで設定します。
Untitled となっている所をクリックして、タイトルを入力しましょう。

タイトルを入力する

 

 

プログラムを改造しよう

これにて「ふうせん割りゲームを作ろう」は終了です。お疲れ様でした。

他人の作ったプログラムを解析するだけでも勉強になりますが
改造することで、もっと深く理解できるようになります。
例えば次のような改造をしてみましょう。

・1秒間の風船の出現数をもっと増やす
・風船をクリックした時に割れた絵に変更する
・風船の大きさをまばらにする
・ゲームオーバー時、スコアによってメッセージを変えてみる
・鳥なども出現させて、間違えてクリックしたら減点にする

などなど挑戦してみましょう。