この記事のポイント
スプライト(キャラクター)を同じ場所から動かす方法を解説します。
はじめに
前回作成したプログラムでは、「緑色の旗」のボタンをクリックするたびに、スクラッチキャット君がどんどん右へ移動するようになっていました。
お子さんが喜んで「緑色の旗」のボタンを連打すると、最終的にスクラッチキャット君が画面の端っこまで進んで、それ以上進まなくなってしまいます。
今回はこの問題を解決する「キャラクタをいつも同じ場所から動かす方法」を説明します。
前回同様にまずは手を動かしてみましょう!
前回の記事
前回はスクラッチの始め方を説明しました。
スクラッチは以下リンクから始めることができます。完全無料です!
完成作品
今回の完成作品はコチラのようになります。実行ボタンを何回押しても、スクラッチキャット君は毎回真ん中からスタートしますね。
完成プログラムはコチラになります。新しくブロックを2個追加しただけです。カンタンですね!
プログラミング
前回作ったプログラムでは、このようにブロックが並んでいると思います。今回はこの続きから始めていきたいと思います。
- 黄色の「緑色の旗が押されたとき」ブロック
- 青色の「10歩動かす」ブロック
- 紫色の「こんにちは!と2秒言う」ブロック
ブロックとブロック間にブロックを追加する。
今まではブロックを追加するときは、ブロックの下にドンドン追加していきました。じつは、ブロックとブロックの間にブロックを追加することもできます。
左の列の青色「動き」カテゴリーから、「x座標を〇〇、y座標を〇〇にする」ブロック(〇〇には人によって異なる数値が入っています)を掴んで、「緑色の旗が押されたとき」ブロックと「10歩動かす」ブロックの間に入れてください。
ブロックを運んでいき、ブロックとブロックの間で離せばOKです。
「x座標を〇〇、y座標を〇〇にする」ブロックの〇〇の部分をクリックすると、数字を変更することができると思います。
x座標に「0」、y座標に「0」を入力してください。
この状態で「緑色の旗」をクリックしてみましょう。
スクラッチキャット君の動きがこれまでと変わったと思いますが、何度クリックしても同じ場所で止まってしまっていると思います。これではまだ足りないのですね。
「〇秒待つ」ブロックを使う
次に、
- 左の列からオレンジ色の「制御」カテゴリーをクリックします。
- オレンジ色ブロックの中から「1秒待つ」ブロックを掴んで、「x座標を0、y座標を0にする」ブロックと「10歩動かす」ブロックの間に入れます。
この状態で「緑色の旗」をクリックしてみましょう。
スクラッチキャット君が毎回同じ場所から動き始めるようになったと思います。
今回はこれで終了です。おつかれさまでした!
【発展】キャラクタをもっと動かしてみる
スクラッチキャット君がちょっとしか動かず物足りないな・・・。と思っている方もいると思います。
カンの良い方はもうすでに実践されているかもしれませんが、「10歩動かす」ブロックの「10」の部分が数値を入力できるようになっています。
この値を、例えば「10」→「100」に変更すると、スクラッチキャット君が先ほどより長い距離動くようになります。
「1秒待つ」ブロック入れる理由
今回のプログラムの中で、「x座標を0、y座標を0にする」ブロックを追加しただけでは、想定したとおりの動作にはなりませんでした。
「x座標を0、y座標を0にする」ブロックがちゃんと機能していないのでは?と思われる方もいるかもしれませんが、「x座標を0、y座標を0にする」ブロックは実はちゃんと動いています。
なのに、まったく動いていないように見えるのは、実はスクラッチの1つ1つのブロックが動作する時間は、人間の目には見えない早さだからです。
例えば、今回のプログラムでは、旗が押されてから
- 人の目には見えない時間で「x座標を0、y座標を0にする」ブロックが実行されて、
- 人の目には見えない時間で「10歩動かす」ブロックが実行される
ことによって最初からx座標10にスクラッチキャット君がいるように見えてしまうのです。
この「1つのブロックが実行される速さは人の目では見えない速さ」ということは、プログラムを作っていく上でとても重要な考え方になります。
パソコンは人の目でついていけない速さでプログラムを動かしています。そこを理解することが大切です。
【小ネタ】スクラッチでのキャラクターの名称
スクラッチ(Scratch)でのキャラクターは、「スプライト」とという名称で呼ばれます。
もっと正確に言うと、「スプライト」は画面に表示されるモノ(キャラクタを含む)すべてのことを指します。今後つかうことになる画面上で現れる文字なども「スプライト」の一種になります。
プログラミングでは「オブジェクト(物)」と呼ばれたりします。
今後は、本シリーズでも「スプライト」と呼んでいきます。
【現場で使えるプログラミング知識】初期化
仕事で使う本格的なプログラミングにおいて、今回のように毎回同じ状態からプログラミングを始めさせることを「初期化」と言います。製品で言うとリセットボタンのようなイメージです。
毎回同じように製品をスタートさせるために、毎回最初に同じ値を設定します。
この「初期化」をせずに前回動作時の値が残っていると期待した動きにならないことがあります。
前回の記事のプログラムで、ネコちゃんがプログラムをスタートするたびに右にうごいてしまっていた理由が、まさにこの「初期化」をしていなかったことによるものです。
「初期化」の部分は実際の開発現場でも問題が起こりやすい場所なので、注意が必要です。
お子さんのプログラミング学習をさらに発展させたい親御さんに
このサイトでは、そのお役立ちする記事をたくさん紹介し、皆さんのお子さんへのプログラミング学習の手助けをさせて頂ければと思っています。
しかし、以下のようなお悩みを抱えている親御さんもいらっしゃると思います。
- プログラミングにまったく自信がない。
- そもそもパソコンが得意ではない。
- 教える時間をなかなか取ることができない。
これらの悩みはプログラミングに限らず、どのような学習でも発生します。
私も自分で子どもに教える時間がなかなか取れなくて困っていたました。。。
その一つの解決手段として、習い事としてプログラミング教室を利用されるのはどうでしょうか?
プログラミングを教えるプロに学ぶことがプログラミング上達には間違いなく効果的です。
おススメのプログラミング教室
その中でも私が最もおススメするプログラミング教室は、「QUREO」です。
「QUREO」の特徴は、このような点です。
- 教室型であり、直接先生からプログラミングを学ぶことができる。
- 全国に教室数が多く(全国2500教室)、実績豊富
- ビジュアルプログラミングかつゲーム制作を学習教材に使用していて、取り組みやすい
- 月謝が比較的安い。
習い事は、「通いやすさ」と「続けやすさ」の2つが重要ですよね。私も「通いやすさ」を重視して「QUREO」を選びました。
今なら無料体験・キャンペーンも実施しているので、一度お試しすることをおススメします!
次回 作ったプログラムの保存方法
スクラッチキャット君がプログラムスタートで毎回同じ場所から動くようになりました。
次は作ったプログラムを保存する方法を解説します!
コメント