Scratchで無限ループ処理をする「ずっと」ブロックの使い方

プログラミング用語に「無限ループ」という言葉があります。

昔は、この無限ループって、プログラマーにとっては「やばい」ものだったのです。キーを押してもなんの反応もしなくなり、最後は電源OFF→ONするしか…

しかし最近のプログラムでは必須なんです。

なので、今回は無限ループがどういうときに必要で、どういう風にプログラミングすれば良いかを体験してみましょう。

目標と所要時間

目標:無限ループプログラムが作れるようになる
時間:10分

無限ループ処理

「ずっと」ブロック

無限ループを実現する「ずっと」ブロックは、制御スクリプトの3番目にあります。

特徴として、コの字をしていますが、下の部分に凸部分がなく、平です。他のブロックの形と比較してみると、違いが分かるかと思います。

で、「凸部分がない」ということは、「ずっと」ブロックの下には、他のブロックはつながらないということです。

これ、重要なんで、頭の片隅にでも置いておいてください。

「ずっと」の前に1度だけ

さて、次に「ずっと」ブロックの使い方を説明しますが、その前に準備を。

猫を動かすプログラムを、次のように作ってください。

できたら、何度か右キーを押してください。どんな動きをしましたか?

向いている方向へ進むとともに、向きが時計回りに少し変わっていくのが分かったでしょうか?

それでは、次、右キーを押っぱなしにしてください。今度はどうでしょうか? 猫がステージの中を時計回り方向に円を描くように移動したでしょうか?

さて、今さらですが、このブロックが集まった塊(以降、チームと呼びます)は、

右キーが「1回」押されると、
 1.猫が20歩動く
 2.時計回りに15度向きを変える
 3.0.25拍待つ
という動きをします。

イメージとしては、こんな感じ。

そして、右キーを何度も押すと、押す毎にその動きが1回ずつ行われます。

「ずっと」ブロックのお出まし

それでは、次に「ずっと」ブロックのプログラミングの仕方と動きをお伝えします。

まずは、どういう動きをするかを体感してもらいましょう。私と一緒にプログラムを改造してください。

まず、「20歩動かす」ブロックをポインターでドラッグして、「押されたとき」ブロックから切り離してください。

次に、「ずっと」ブロックを、「押されたとき」ブロックにつなげてください。

できたら、さきほど切り離した「20歩動かす」ブロック3つを、「ずっと」ブロックの「隙間」に入れてください。

「ずっと」ブロックが縦にびよーんと伸びて、3つのブロックが隙間に収まりました。

さぁ、これで改造は完成です。

さぁ、それでは、右キーを「1回」押してください。一回だけですよ! どうなりましたか?

ずっと動き続ける

右キーを「一回だけ」だけ押してもらったにもかかわらず、猫が円を描きながら移動しましたか?

これは、キーを何度も押したときと同じ動きですね。

これが「ずっと」ブロックの働きなんです。

つまり、キーが一度押されると、「ずっと」ブロックの間にあるブロックの動きを、繰返しずっと続ける、というわけです。

どうでしょうか? 「ずっと」ブロックの使い方と、動作はイメージできたでしょうか?

後光が差す?!

ちなみに、猫が動き続けている間中、ブロックに後光が差しているのがわかるでしょうか?

この後光は、「そのブロックが動いている」ことを表しています。

ステージ右上の「フラグ」アイコンも、普段は濃い緑色ですが、プログラムが動いているときには明るい黄緑色になっています。

「ずっと」を止めるには

さて、このままあなたが何もしないと、猫はずーーーーーと動き続けます。

動き続けてもらうのもいいのですが、他のプログラミング作業ができません、このままでは。

じゃぁ、動きをどうやって止めるかというと、ステージ右上の「フラグ」アイコンの右横の「赤丸」アイコンを押してください。

すると、後光が消えるとともに、「フラグ」が濃緑色になります。

これで「ずっと」チームの実行が終了します。

無限ループの例

さて、「ずっと」ブロックを使ってずーっと実行させる無限ループの使い道として、BGMを鳴らしたり、ゲームでいう当たり判定処理があります。

当たり判定処理のプログラムは、スプライト当たり判定方法その3 監視員型判定プログラムで詳しく説明していますので、そちらの記事を読んでみてください。

ちなみに、完成プログラムはこんな感じになります。

猫を左右に動かして、稲妻に当たると、「痛!」って叫びます。

次回の予告

関連記事

スポンサーリンク

コメント

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