ScratchCatを歩かせてみよう!ver2

前回のScratchCatを歩かせてみよう!では、ScratchCatというスプライトを歩かせるプログラムを作成しました。プログラムの書き方は人それぞれであり、目的を果たしたという意味では前回のプログラムも正解です。

 

ただし、改善できる点あります。スプライトを歩かせるという単純なスクリプト(プログラム)なら良いですが、アニメーションを作ったり、ゲームを作ったりしていくためには「プログラムは簡潔に書く」ことが求められます。理由はいくつかありますが、Scratchでのプログラミング学習においての一番の理由は「ミスを少なくすることができ、ミスを見つけやすくなるから」です。長くなるほど間違いが起こりやすいですし、後からチェックするときも短い方が簡単ですよね?このため、プログラムはシンプルに簡潔に書くことが重要になってきます。

 

特に最初は意識する必要はないですが、他にもプログラムの可読性があがりメンテナビリティー(保守性)が向上したり、大規模なプログラムになってくるとパフォーマンスの向上などの理由もあります。頭の片隅にでも覚えておき、慣れてきたら意識するようにしましょう。

 

では、本題に戻ってScratchCatを歩かせてみよう!のプログラムを簡潔化していこうと思います。

 

1.プロジェクトを作成する

まずはプロジェクトを作成します。このサイトでは過去のプログラムを参照できるようにするため新規プロジェクトで作成しますが、以前のcratchCatを歩かせてみよう!で作ったプロジェクトを残す必要がない場合は変更しても大丈夫です。

 

 

プロジェクト名は任意ですが今回もこのページのタイトルに合わせて「ScratchCatを歩かせてみよう!ver2」としました。

 

2.コスチュームを追加する

次に歩く動作を表現するためにコスチュームを用意します。

中央上段にあるコスチュームタブをクリックして、”ライブラリーからコスチュームを選択”をクリックします。その中から”cat1-b“を追加しましょう。

 

 

 

このコスチュームについている名前(”costume1″、”cat1-b”)は変更することができます。前回はそのまま利用しましたが今回は“cat1-b”をわかりやすいように”costume2″に変更しましょう。上部に表示されている”cat1-b”の部分を変更することができます。

 

3.歩くスクリプトを記述する

さてここからが本題になります。前回は10歩動かすために動きから10回の”10歩動かす“を追加しました。これを今回は制御を使うことによって1回の”10歩動かす”を追加するだけで10回実行できるようにします。

 

スタートする条件は前回と同様に”スペースキーが押された時“としましょう。

 

これだけではただスペースキーを押すごとに10歩動くだけのプログラムになります。ここで新しく登場するのが”制御”です。パレットから”制御”を選択すると様々なプログラムを制御するためのスクリプトが表示されます。

 

 

この中から、10回繰り返す“をスクリプトエリアの”10歩動かす“を挟むような形になるようドラッグ&ドロップします。ブロック同士は近づけると接続される辺が白く強調されるので確認してからドロップしてください。

 

 

この制御によって、設定した回数だけ中身の処理が繰り返されることになります。上記の状態では10回”10歩動かす”が行われることになります。

 

ただし、このままでは前回も紹介したように待ち処理がない状態では一瞬で100歩動きます。このため、繰り返し処理の中に制御の”1秒待つ“、そして歩く動作を表現するために見た目の”次のコスチュームにする“を追加しましょう。

 

 

前回はコスチュームを変更するのに”コスチュームを◯◯にする“というブロックを使いましたが、これでは繰り返し処理では変更することができないので、”次のコスチュームにする“を利用します。これはスプライトに設定されているコスチュームを順次切り替えるブロックです。

今回の場合は「costume1」と「costume2」がこのスプライトには設定されているため、交互に切り替える、前回と同様の動作を実現することができます。

 

さて、これで前回と同様のプログラムになりました。スペースキーを押して実行してみましょう。中央にいたScratchCatが約10秒かけて10歩(10px)ずつ右に歩いていきます。前回の”10歩動かす“や”コスチュームを◯◯にする“を10回書いたプログラムよりもすっきりしていて読みやすくなりました。

 

完成

今回、実際に作ったプログラムをスクラッチ上で公開したものが以下になります。※スペースキー押下時に初期位置(0,0)に戻る、初期コスチュームに戻る動作が追加されています。

 

前回と今回のプログラムを比べていただければわかるように、同じ動作をするプログラムでも書き方は色々とあります。今回は前回のプログラムを改良しましたが、このページの冒頭にも書いた通り「10歩だけ歩かせる」という目的を果たしているため、前回のプログラムも間違いではありません。

 

余談ですがこの目的を果たすための書き方が1つではないというところから、目的の動作を目指すために自ら考える力をつける、問題解決能力が身につくとされ、プログラミング教育が注目されている面があります。

 

まずは目的を果たすプログラミングを考える、そして考えながら作ってみましょう。そして、出来上がったらもっとシンプルにわかりやすく書けないか、改良できないかを見直してみましょう。そうすることでプログラミング的な考え方がより身についていくでしょう。

Scratch2.0

Posted by yuma