2018年2月18日日曜日

Scratchでプログラミング その14 敵に当たると体力が減る(変数)

Scratchの使い方解説です、今回の難易度はEasy
前回までの記事についてこれていれば、簡単だと思います。

記事をまとめたページはこちら。

特に計画を立てて記事を書いているわけではないので、プログラムを勉強するのに大切なものが、なかなか紹介されなかったりします。

今回はプログラムの主役と言っても良い「変数」をやっと使います!

0.目次

  1. 変数の作成
  2. 初期ライフの設定
  3. ダメージを受けたときにライフを減らす


1.変数の作成

前回までの記事で敵を登場させましたが、ネコが痛がるだけで何度当たっても、ゲームオーバーにはなりません。

ですので、3回当たったらゲームオーバーにしようと思います。

前回、ネコに作成した当たり判定のコマンドです。

今回はここにダメージを受けたときの処理を追加します。

プレイヤーのネコは最初ライフを3持っていて
敵にぶつかるたびに、3→2→1→0と減っていくことにします。
この3から順に変わっていく数字を「変数」と言います。

Scratchではデータの「変数を作る」ボタンから作成します。

今回は変数の名前を「Life」としました。
「すべてのスプライト」と「このスプライトのみ」の選択は
「すべてのスプライト」を選択しておいてください。

変数を作成すると、下の図のようなコマンドが追加されます。


追加された「Life」のチェックボックスをチェック状態にすると、画面上に「Life」が表示されるようになります。

今回は簡易的に画面に表示された「Life」をそのまま使用します。


2.初期ライフの設定

いま表示されている「Life」は0です。
ゲームの開始時点ではライフを3にする必要があります。


ネコの初期設定に「Lifeを3にする」を追加しました。
ついでに、位置の指定もx座標だけでなくy座標の指定まで行うように変更しています。
これは、ジャンプしたままゲームオーバーになったときに、キャラクターが空中に浮きっぱなしになることへの対策です。


3.ダメージを受けたときにライフを減らす


次にネコの当たり判定に「ライフを減らす」コマンドを追加しました。
ライフを減らす」コマンドの次にライフがが0になっていないか」判定をしています。
ゲームオーバーの判定は「Life=0」ではなく「Life<1」にしています。
これは連続でダメージを受けたときにLifeがマイナスになるかもしれないためです。
Lifeがもしもマイナスになってしまうと「Life=0」の判定では判断できなくなります。

そして、ゲームオーバー時には制御の「すべて止める」を使用しました。
これで、3回ダメージを受けるとプログラムがストップするようになりました。


今回は画面に変数のLifeを直接表示しましたが、Scratchでは数字を表示しやすいイラストが用意されています。
次回は、Lifeの表示を少しオシャレにしてみようと思います。