この記事のポイント
「ずっと」ブロックを使って、スプライト(キャラクター)を自由にうごかします。
はじめに
前回の記事で、「繰り返す」ブロックを使って、スプライトが歩いて見えるプログラムを簡単に書きました。今回はさらに発展して、「繰り返す」のもう一つの種類である「ずっと」ブロックを使ってみたいと思います。
しかし、ただ「ずっと」ブロックを使うだけでは面白くないので、あなたがスプライトを自由にマウスで操作して動かすことができるプログラムを作ってみたいと思います。
自由に操作できるとゲームっぽいことができますね!
前回の記事
前回の記事はコチラ。「繰り返し」ブロックでスプライトを歩いて見せるようにしました。
プログラミング
完成作品
完成作品はコチラです。いつものように実行ボタン(緑色の旗)を押してスタートしてください。プログラムがスタートすると、あなたのマウスを目指してスプライトが動きます。もちろん歩いているように見えます。
スプライトキャットが地面の上を歩くように、マウスを上手に操作してみましょう。
完成プログラムはコチラです。「ずっと」ブロックより上は前回と同じです。
ずっと繰り返す 「ずっと」ブロック
では、さっそく「ずっと」ブロックを使ってみます。コスチュームをずっと交互に変更して、ずっとその場で足踏みしているように見せるプログラムを作ります。「ずっと」ブロックは、「制御」カテゴリにあります。
以下のようにプログラムを組んで、実行してみてください。
すると、スプライトのコスチュームが交互に変わっていき、その場で足踏みしているように見えるようになったと思います。
そして、いつまでも足踏みを続けていると思います。これが「ずっと」の効果なのです。
では、どうやって足踏みプログラムを止めるかと言うと、画面右上の赤丸の「止める」ボタンをクリックします。
このように「ずっと」ブロックは、プログラムが始まって、「止める」ボタンがクリックされるまで続けるブロックなのです。
スタートしてからずっと動いているプログラムというのは、この「ずっと」繰り返しをしているのです。これホントにプログラミングで1番重要なテクニックなのです!
マウスでスプライトを操作するブロック1
単に足踏みしているだけでは面白くないので、次はマウス操作でスプライトを自由に動かすためのプログラムもしてしまいましょう。「〇へ行く」ブロックを使います。そのままだと「どこかの場所え行く」ブロックになっていると思います。
まず、「どこかの場所え行く」ブロックをこのように配置してください。
そして、「どこかの場所へ行く」ブロックをクリックして、「マウスのポインター」に変更します。
そして、実行してみてください。すると、あなたのマウスの動きに合わせてスプライトが動くようになったと思います。
マウスでスプライトを操作するブロック2
もう少し操作している感じを出したいと思います。
「〇へ向ける」ブロックを使います。そのままだと「マウスのポインターへ向ける」になっていると思います。
「マウスのポインターへ向ける」ブロックをこのように配置します。
「マウスのポインターへ向ける」ブロックは、「マウスのポインターへ行く」ブロックの上に置いてください。逆の置き方にすると、うまく動きません。
そして、実行ボタンを押してください。スプライトがあなたのマウスのポインターの方向を向いて、ちゃんとついてくるようになったと思います。
これであなたのマウス操作で、スプライトを自由に動かすプログラムができたと思います。お疲れ様です!
【発展】もう少しスムーズに動かす
【結論】繰り返しの間隔を早くすればいい!
もう少しスムーズに動かすためには、「ずっと」ブロックの中の「〇秒待つ」の値を「0.1」秒にしてみましょう。
すると、「0.5」秒のときよりスムーズに動くようになったと思います。
繰り返しを早くしすぎるときの注意!
待つ時間を短くすればするほど、スムーズに動くようになります。
しかし、それだけパソコンは高速にプログラムを処理しなければいけなくなって他のことをする余裕がなくなります。
昔のパソコンはワードとエクセルとウェブブラウザを立ち上げたら処理が止まってしまっていたと思います。あんな感じです。
このスムーズさを重視するか、パソコンが固まらないようにするかのバランスを考えた設計は、実際の開発現場でもとても重要なところになります。
とくに、私のようなパソコンではなくロボットや車のプログラムを設計している人には最重要課題と言っても過言ではありません。
ロボットや車に使われるCPUは、パソコンのように高性能(高い!)なものを使うことができないからです。
【おさらい】今回初めて使ったブロック
「ずっと」・・・はさんだブロックをずっとくりかえします。
「〇へ行く」・・・スプライトをマウスポインターの方やどこかにうごかします。「▽」をクリックして選べます。
「〇へ向く」・・・スプライトをマウスポインターの方やほかのスプライトの方へ向けます。「▽」をクリックして選べます。
【小ネタ】「ずっと」は「無限ループ」
この「ずっと」ブロックは、プログラミングでは「無限ループ」と呼ばれます。スタートしてからずっとなんらか動いているプログラムは、この「無限ループ」で作られています。
例えば、工場のロボットで右にあるモノを左に移動させるというプログラムも、このように無限ループが組まれています。
- ロボットの手を右に動かす。
- ロボットの手でモノをつかむ。
- ロボットの手を左に動かす。
- ロボットの手からモノをはなす。
- ①へ戻る・・・ の無限ループとなっています。
無限ループのおかげで一度スタートさせたら、後はほったらかしで大丈夫なんですね!ラクチン。
【現役エンジニアあるある】無限ループの恐ろしさ
これだけ便利な無限ループですが、恐ろしい問題もあります。
それは、プログラムを作り間違えると、永遠に止まらなくなります。電源を引っこ抜くまで止まりません。
スクラッチでは、ちゃんと最初から「止まる」ボタンが用意されているので、このような心配はありませんが、実際のプログラミングでは、この「止まる」ボタン自体もプログラミングで作らないといけません。
この「止まる」ボタンを作らずに、「実行」してしまうと・・・永遠に止まらないプログラムが完成します。
そうなったらあきらめて電源を落とすしかありません。。。
エンジニアなら誰もが通る道「無限ループ地獄」です。
次回 スプライトを2つにする
次回はスプライトを2つにしてプログラミングをしてみます。画面にキャラクターが増えてよりにぎやかになります。
お子さんのプログラミング学習をさらに発展させたい親御さんに
かく火が付いたお子さんのプログラミング熱を継続させるためには、学習をしっかりサポートしてお子さんの「できた」の体験回数をたくさん増やしていくことが重要になります。
このサイトでは、そのお役立ちする記事をたくさん上げて皆さんの手助けをさせて頂ければと思っています。
しかし、プログラミングが得意ではない、なかなかお子さんに教える時間が取れないという親御さんも多いと思います。
私も自分で子どもに教える時間が取れなくて困っていたました。。。
その一つの解決手段として、プログラミング教室を利用されるのはどうでしょうか?
その中でもスクラッチと同じビジュアルプログラミングを利用しているおススメのプログラミング教室は「QUREO」です。
「QUREO」の特徴は、このような点です。
- 全国に教室数が多く、実績豊富
- ビジュアルプログラミングを学習教材に使用していて、取り組みやすい
習い事は、「通いやすさ」と「続けやすさ」の2つが重要ですよね。
今なら無料体験・キャンペーンも実施しているので、一度お試しすることをおススメします!
コメント