
Scratch1.4で、猫が迷路の中でチーズを探し回るゲームの4回目(最終回)。
大まかなところは終わっているが、ゲームの難易度を上げるために敵の虫を増やしたり、ゲームの終わり方の設定をする。
敵の虫を増やす
虫がネコチンに触れたらゲームをストップさせるプログラムを追加する。教科書では「if touching nekochin?」のブロックの間にメッセージを送る方法を紹介している。
メッセージは「broadcast ~」を使って送る。このメッセージは全てのスプライトが受信可能なので、broadcastというコマンド名は納得できる。
メッセージ名称は自由に設定できる。ここでは「game over」と名付けた。
虫が送った「game over」というメッセージをネコチンが受信したらゲームをストップするようにする。
ネコチンと虫の接触は、ネコチンの中でもプログラムにすることもできる。その場合、mushi1,mushi2,mushi3それぞれに「if touching mushi1?」、「if touching mushi2?」、「if touching mushi3?」というように増やした虫の数だけ設定しないといけない。
この方法に比べて、虫の側に設定した、ネコチンと接触したらメッセージを送るというコマンドは、何匹虫を増やしてもメッセージは1つなので何も追加する必要がない。
でも、よく考えて見ると、接触したらメッセージを送るのはネコチンでもいいわけだ。この場合もメーッセージは1つで全ての虫に送ることができる。
要するに、多くのスプライトの制御をしたい場合は、各スプライトに対して「if ~」をたくさん使うよりも、1つで済むメーッセージの方が手間がかからない利点があるわけだ。
こうして出来上がった最初の虫のスプライト(mushi1)を右クリックしてduplicateを選ぶと、プログラムも含めて虫のスプライトがコピーできる。
変更する箇所は、ゲームの最初に配置する初期設定のX,Y座標だけだ。自動的に付けられる名前を変えたければ変えてもいい。コピーして虫は3匹に増やした。(mushi1,mushi2,mushi3)
最初の虫(mushi1)を右下隅に配置したので、増やした虫を右上隅、左下隅に配置した。これで3匹の虫が左上隅からスタートするネコチンに向かって迫っていくわけだ。

(写真:虫たちがネコチンに接触したらゲームオーバーのメッセージを送るようにする)
ネコチンがメッセージを受け取ってゲームオーバー
虫のどれかがネコチンに触れると「game over」というメーセージを送る。このメッセージをネコチンが受け取ると「stop all」というコマンドが働くようにしてゲームオーバーとなる。
教科書では3.0バージョンなので「stop all」ではなくて「stop other sprite’s script」を使って、ネコチンだけをストップさせ、虫たちはなおも動き回っているような設定にしている。
しかし私が使っている1.4バージョンにはそのコマンドがないので「stop all」で全てのスプライトを止めてしまうしかない。

(写真:ネコチンがメーッセージを受取ゲームオーバー)
GAME OVER」の表示
全てが止まる時に、「GAMR OVER」という大きめの文字の表示を画面に出すようにする。
迷路を作った時と同じ要領で、「GAME OVER」表示もスプライトとして作る。これは虫が送った「game over」メッセージを利用するためだ。
ネコチンと同じように「GAME OVER」表示もそのメッセージを受け取ると、あらかじめ隠れて(hide)いた状態から、画面の中央(X,Y=0)の最前面(go to front)に現れる(show)ようにする。

(写真:終わりに「GAME OVER」と表示されるようにする)
ハイスコアの設置
ネコチンがチーズに触れることができれば10ポイントがスコア(score)の変数に入る。
ゲームを繰り返す中で、前のゲームよりもポイントが高ければ、新たに設置したハイスコア(high score)変数を書き換えるようにする。
このプログラムはチーズのスプライトの中に追加する。
「if score > high score」の間に、「set score to high score」を挟む。

(写真:最高得点のスコアが出たらハイスコアを書き換える)
ゲームをプレイしてみた感想
ノートパソコンの方向キーを自在に扱うには、私のような70のナウなヤングにはしんどい。直ぐに虫と幽霊の餌食になってしまう。
虫のスピードをかなり遅くしたり(move 3 stepsに減らすとか)、幽霊の現れている時間をもっと短くして(wait pick random 2 to 5に減らすとか)難度を下げる必要がある。
教科書には、敵のスプライトを一時的に消すことができるアイテムを迷路の中に配置するというようなアイデアを紹介しているが、いい考えだと思った。アイテムを何種類か用意して、自分が一時的に壁を通り抜けられるようにできたり、虫や幽霊に触れても死なないようにできてもいいかもしれない。
やっぱりゲームは改造からが本番なのだと、改めて感じる今日この頃。ポテチン。
参考文献:
コメント