Scratchプログラム(キャッチゲーム)

Scrathキャッチゲームプログラム

Scrathプログラム第2回目です

Scratchプログラム(キャッチゲーム)

今回のScratchはキャッチゲームです。

プログラムの中身はこちら

https://scratch.mit.edu/projects/344531328

ゲームのやり方

画面のワンちゃんを指クリック(マウス)もしくはキーボードで左右に動かし、落ちてくるリンゴをキャッチしてください。リンゴをキャッチすると得点、毒リンゴをキャッチしてしまうとハートが減ります。ハートが0になるとゲーム終了です。得点はシンプル版なので何点とったからゲームクリアになるというものにしていません。

プログラムの説明

プログラムの説明においては前回のクイズゲームのように考え方というものを事前に説明するほど難しいことは行っていませんよ。

変数・配列の定義

変数

scratch-catch-変数

今回は配列は使わず、変数のみ定義です。変数は2つ。ワンちゃんのLIFEゲージを示すハートと、リンゴをキャッチした数(=点数)の2つを定義しています。

各スプライトの説明

ワンちゃん

宇宙服を着た犬

ワンちゃんのスプライト説明をします。ワンちゃんは動きの処理と毒リンゴをとってしまった時にダメージを受けたことを視覚的に表示する処理を担っています。

犬スプライト説明1-01

この説明にもあるとおり、大きくマウスの操作/キーボード操作/ダメージを受けた時の3つに分かれます。

マウスの処理ではマウスがクリックされた時、ワンちゃんの画像をマウスの押した方向に向けるというブロックを使っています。これ、前回のクイズプログラムではダイバーの向きを変えるのに、ダイバーがもとにいた位置を記憶させる変数を使いましたが、このブロックを使うと同様のことが簡単にできるんです。そして、その後、クリックした位置に1秒でワンちゃんを移動させるという処理をいれています。この時、ワンちゃんは地面を歩く(左右にしか移動できない)ので、高さであるY座標はそのまま初期の-110としてあります。ここで回転方向を左右のみにするというブロックが入っていますが、これはワンちゃんの画像が切り替わった時にこのブロックの状態にしていないと、ワンちゃんが向きを変えるときにさかさまになってしまうからです。

なお、このマウスによる移動はいまいま少し欠点があり、1秒で移動するとしているので、移動距離が長い(たとえば画面の端っこにいるとき、逆の画面端をクリックした)ときなどは移動スピードが速くなってしまうという問題があります。これは何か対策はあると思いますが、今時点では思いついていません。シンプル版ということもあり、ここは触れておかないでおきましょう。

次にキーボードを使った時の操作です、キーボードの左キーと右キーを押した時、それぞれの方向を向くワンちゃんの画像に切り替えるという処理にして、それぞれ5ずつ移動するという処理にしています。

最後のパートは毒リンゴに触れた時の処理です。毒リンゴのスプライトの時で触れますが、毒リンゴとワンちゃんが触れたらダメージを送るというメッセージがワンちゃん側に送られてきます。この時、ワンちゃんがダメージを受けたように見た目効果を変える(今回は幽霊の処理=一旦消す)という処理を0.3秒間行うという形でいれています。

リンゴ

赤いリンゴ

次はリンゴ側の処理です。リンゴは画面の上部から下に落ちていき、ワンちゃんに触れたら点数を+1して、そうじゃない場合は繰り返し落下が続いていくような表示になるようにします。それには次のような処理になります。

りんごスプライト説明1-01

この処理において、厳密にはリンゴが最初に現れる初期位置を設定してやる必要があるのですが、今回はそれはそこまで重要ではないので省いてしまいました。

 

毒リンゴ

黒い毒リンゴ

次は毒リンゴの処理です。基本的な動きはリンゴの処理と同じですが、違う部分はワンちゃんと触れた時の処理になります。以下がその説明です。

毒りんごスプライト説明1-01

背景(ステージ)

海と桟橋

今回は背景(ステージ)にも処理をいれています。この処理はゲーム開始時の変数の初期化とハートが0になった時にゲームオーバーの表示と全処理の停止をつかさどります。

背景スプライト説明1-01

 

まとめ

さて、今回はキャッチゲームという比較的簡単なゲームをScratchでつくってみました。次回は、もう少しゲーム性を高めたキャッチゲームに改良してみたいと思います。

 

コメント

タイトルとURLをコピーしました