スクラッチでシューティングゲームを作ろう④

前回まででシューティングゲームの動きができるようになったと思います。
今回は敵(てき)をたおした時に点数がふえたり、主人公が敵(てき)にあたったときにライフをへらしたりするようにします。

変数(へんすう)とは

点数やライフをつかうためには数字を足したり、へらしたりして計算をする必要があります。

プログラミングでは変数(へんすう)というものを使ってこれらを作っていきます。

変数(へんすう)とはなんでも入れることができる「箱(はこ)」のようなものです。数字(すうじ)や文字(もじ)やいろいろな「データ」を入れることができます。この箱(はこ)に入れたデータは後で取り出したり変えたりすることができます。

敵(てき)をたおしたら点数をふやす

まず点数用の変数(へんすう)を作ります。
画面左の変数(へんすう)をクリックした後、「変数を作る」をクリックします。
変数名は「とくてん」として「OK」をクリックします。

「とくてん」変数(へんすう)を作ったらプログラミングに入れていきましょう。

ゲームが始まったときは必ず「とくてん」は0にしないといけないので🚩が押されたときに「とくてん」を0にします。どのスプライトに入れてもよいのですが、得点はゲーム内で共通のため今回は背景(はいけい)にプログラムを作りましょう。

敵(てき)をたおすと10点加算するようにします。なので敵(てき)スプライトの中のプログラムで弾(たま)に触(ふ)れたときに10を足すようにしましょう。

主人公のライフをプログラミング

「ライフ」も「てんすう」と同じように変数を使います。「とくてん」と同じように「変数を作るから」ライフという変数をつくりましょう。

ゲームが始まったら最初のライフを設定して敵(てき)に触(ふ)れたらライフを減(へ)らすようにします。

主人公のスプライトに新しく🚩が押されたときブロックを置いてその下にプログラムを作っていきましょう。最初にライフの設定をして、敵(てき)[Gobo]に触れたらライフを「-1」ずつ変えるようにします。

この下に「うーんと1秒考える」がはいってます。

なぜこのブロックが必要なのでしょうか?

ずっとのくり返しブロックは1秒間に数10回くらい実行されます。そのため敵(てき)に触れている間ずっとライフが-1になるのでライフがすぐに0になってしまいます。コンピュータの実行する時間はとても速いということを覚えておいてください。

そうならないようにするため一度敵(てき)に触(ふ)れたら1秒の間ライフをへらさないようにするためにこの「うーんと1秒考える」を入れています。1秒間待ちたいので「1秒待つ」やほかの方法で1秒間待つようにしてもよいです。

次にライフが0になったらゲームオーバになるようにします。

ライフを-1ずつ変えるの下に「もしライフ=0なら」「すべて止める」をいれましょう。「すべてを止める」はここでプログラムが終わる(ゲームが止まる」ようになります。

ここで「すべてを止める」の前にゲームオーバ用の背景を用意して背景を変えてあげるとよりゲームっぽくなります。

タイマー(のこり時間)

ここまで作ると敵(てき)にぶつからない限り永遠(えいえん)にゲームが終わりません。
なのでさいごにタイマー(のこり時間)を作っていきます。

今回は30秒でゲームが終わるようにします。

これも変数(へんすう)を使います。同じように「変数を作る」から「のこり時間」を作りましょう。

「のこり時間」もゲームで共通なので「背景(はいけい)」に作っていきましょう。
すでに🚩が押されたときに「とくてんを0にするがあるのでその下に作っていきます。
まず「のこり時間を30にする」とします。1秒に一回のこり時間を「-1」にして終わったら「すべてを止める」にします。

やり方はいろいろあります。ずっと1秒待つ、-1秒変える、でのこり時間が0になったらすべてを止めるというやり方もあります。自分が見ての分かりやすりやり方でプログラミングをやってみましょう。

ゲームの完成

ゲームが完成しました。自分が考えた通りにプログラムが動いているか確認してみましょう。

プログラムを色々変えると主人公や敵(てき)の動くスピードが変わったり、敵の動く角度(かくど)をランダムにしたりといろいろなことができるようになります。

どこのプログラムを変えるとよいか、どういうふうに追加するとプログラムができるかなどいろいろ試してみましょう。