スクラッチ(Scratch)シューティングゲーム、クローンの扱いプログラミング例

この記事は約2分で読めます。

子ども向けのプログラミング言語、スクラッチ(Scratch)ですが、クローンといった、複製機能がついています。

この機能、便利そうですが、使い方によって、あれ?といった不具合が発生することも多々あります。

その一例をシューティングゲームにて、解説していきます。

作ったのは、こちら

RobotとBallが当たった判定をRobot側でした場合
(プログラミング例は、最新のバージョンで)

Robot側

スクラッチプログラミングシューティング例R-1

 

Ball側
スクラッチプログラミングシューティング例B-1

この状態だと、Ballが複数出ている状態でRobotにあたると、「このクローンを削除する」で、全てのBallが消えてしまいます。

おそらく、

クローンされたときのイベント内で処理が完結されないので、どのBallを消すのか、判断できずに、出ているBallが全て消える現象になっているのだと思われます。

これを修正して、Ball側で判断すると、

スクラッチプログラミングシューティング例S-2_Ball

Robotは、

スクラッチプログラミングシューティング例S-2_Robot

今度は、出ているRobotが全て消えるといった現象になりますが、このゲームの場合は、タイミングにより回避できます。

RobotがBallに当たったら、消すといったことを

Ballに触れた時に、コスチュームを変えて、しばらく出している時間を短くするなど
Robotを出すタイミングで、1体だけにすることで回避できそうです。

スクラッチ(Scratch)言語で、簡単に作ろうとすると、このような問題がおこるケースが出てきます。

が、、、

あくまでも、学習用と位置付けると、これでも十分なような感じですネ。

他の言語で作る場合には、複製してもどのクローンかを指定して、消すような処理になるので、こののような現象はおこりにくいかと思われます。

このような現象となった場合でも、ロジックをチェックして、しっかり説明して、あげたいですネ。

(*^^*)

以下、動画で簡単に動作を見ながら確認して下さい。

作ってみるのが、一番、解りやすいですよ。

(*^^*)

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