2024.11.12Scratch で始める小学生からのプログラミング
小学生からのプログラム:Scratchを理解するための12の技(4)
こんにちは!タイムレスエデュケーションの山田です。今回は「Scratchを理解するための12の技」シリーズの第4弾をお届けします。これまでの記事で一通りの動きは作ることができるようになってきたかと思います。今回の記事では、前回の動きのあるエフェクトの作り方をさらに進めて、動画を作る、音を出す、スコアを記録するなど、さらに機能を追加する方法を紹介します。第1弾からご覧になられている方は慣れてきたのではないでしょうか。使い方に慣れてきたら、新しいものを作るフェーズに入ることができますよ!
これまでの「Scratchを理解するための12の技」シリーズの記事は下記のリンクから!
技10:乱数でいろいろな音を出してみよう
最初の技は、乱数を使っていこうと思います。乱数とは、英語ではランダム(Ramdom)といいますが、「規則性のない数字」のことです。みなさんの身近なものでいえば、サイコロの出目を思い浮かべてください。振った時の出目に決まりはありませんね。コンピュータでは、よくこの乱数を利用してプログラムを記述することがあります。例えば、ゲームで敵を動かす場合に、予測できないような動きを作りたいとしましょう。その場合、乱数を使って移動する速度や向きを決めることで、予測できないような動きを作ることができます。このScratchでも、乱数を使ったプログラムを作ることができます。ここでは、ドラムの音を乱数で変化させることで、予測できない音を出すドラムを作ってみましょう。ドラムのスプライトを選んで、次の図のようなプログラムを作ってみてください。
ここでのポイントは、「演算」のカテゴリにある「◯から△までの乱数」というブロックを使っているところです。この◯と△の部分の数値を変更することで、乱数として作り出す値の範囲を決めることができます。このプログラムでは、Scratchで用意されている音の数が18種類であるため、「1から18までの乱数」というブロックを使っています。こうすることで、毎回違う音が鳴るプログラムを作ることができます。実際に動かして確認してみましょう!
技11:動画を作ってみよう
次は動画を作る技です。突然ですが、みなさんはパラパラ漫画をご存知でしょうか。絵を何枚も用意して切り替えていくことで、絵が動いているように見せることができます。これは、アニメなどの動画でも使われている手法です。前回は簡易的なものを作成しましたが、今回は動きを作ってみたいと思います。
最初はスプライトを選ぼう
それでは、ライブラリに用意されているスプライトを利用して作成してみましょう。スプライトの中にはいくつかの動きを表現したコスチュームが用意されたものがあります。今回は、4種類のコスチュームが用意された「avery walking」というスプライトを選んで、動きを作ってみましょう。今回は用意されたものを使いますが、自分で絵を描いてみるのも良いと思います。ぜひオリジナルの動画を作る時は、自分で絵を描いてみてください。
動きをつけよう
前回の記事でも紹介していますが、コスチュームを変える場合は、「見た目」のカテゴリにある、「次のコスチュームにする」を使います。上の図のようにコスチュームは、歩く動きの順に並んでいます。これを利用して、次々とコスチュームを切り替えていくことで歩いているように見せていきます。それでは、「ずっと」のブロックを使って、下の図のように「次のコスチュームにする」を使ってみましょう。プログラムが完成したら動きをみてみましょう。
はやい、はやすぎる!
どうでしょう、歩いているように見えますか?ものすごいスピードで動いていて、歩いているようには見えませんね。より歩いているように見せるため、「0.2秒待つ」命令を入れてみましょう。こうすることで次の命令が動くまでの時間を調整することができます。
こうすることで歩いているように見えますね!動きの速さは自分で調節することもできますので、思い通りの速さで動かすことができます。
移動させてみよう
次は、このスプライトを動かしてみましょう。スプライトを動かすにはどうすると良かったでしょうか。そう、「動き」カテゴリにある「◯歩動かす」を使います。
しかし、「◯歩動かす」だけでは、上の図のように端にめり込んでしまいます。そこで、「もし端に着いたら、跳ね返る」という命令を入れましょう。こうすることで、端に着いたときに、反対方向に向くようになります。完成したら動かして、正しく動いているか確認してみましょう。
これで端についた時に跳ね返るようになりましたね。しかし、スプライトが上下逆さまになってしまいました。これを直すためにはどうすると良かったでしょうか。忘れてしまった方は第1弾の記事を読み返して直してみてください。
技12:スコアを記録しよう
最後の技はスコアを記録する方法です。よくゲームでは、スコアが表示されていると思います。スコアを記録する方法を理解すれば、オリジナルのゲームを作ることができるようになります。
サメのゲームを作ろう
今回は、サメが主役のゲームを作成してみたいと思います。最初に、サメと魚をスプライトライブラリから用意してください。そして、サメのスプライトで、下の図に示すようにキー入力を受け付けて、上下左右に動かせるようにプログラムを作りましょう。
また、「向き」のところをクリックしていただくと、向きを決める画面がでてきます。下に3つ並んだアイコンの中から、回転方法を選ぶことができます。今回は真ん中のアイコンを選び、回転方法を左右のみにします。
変数を使ってみよう
次に、スコアを記録できるようにしましょう。スコアを記録するためには、変数の機能を使います。変数とは、数値を記録するための場所のことです。そして、その場所に名前をつけて管理します。今回は「スコア」という名前の変数を用意してみましょう。
まずは変数を作ります。「変数」カテゴリにある「変数を作る」をクリックします。
そうすると、変数の名前をつける画面が出てきます。ここで、「スコア」と入力してOKを押すと作成することができます。
サメに動きをつけてゲームらしくしてみよう
では、作成した変数を用いて、スコアを記録できるようにしましょう。このゲームでは、サメが魚に触れたら1ポイントゲットできるとします。また、ただ動かすだけでは簡単になってしまうため、次のような動きを作ってみましょう。先ほど説明した乱数を使って、次の処理を繰り返すようにします。
1から10の乱数の向きだけ右に回転する
5歩動かす
もし「魚」に当たったら
その時は、点数を1点追加する
そして、−100歩動かす(100歩戻す)
もし端に着いたら跳ね返す
という処理を実現します。下の図に示すようなブロックの形になります。これを動かしてみてください。酔っ払ったサメのようになりますが、くるくると回っているかと思います。魚まで距離があるとたどり着けないので、先ほど追加した矢印カーソルを使って、位置をずらしていくとヒットするようになるはずです。
ここで大事なこと
これで完成!、と言いたいところですが、このままだと少し問題があります。それは、1回目にプレイした後、もう一度スタートした場合にスコアの値がそのままになっていることです。一般的にコンピュータのプログラムを作る場合、変数はどのような値が入っているかは定められていません。そのため、値をある一定の数になるように定めてあげる必要があります。これを専門用語では、「初期化(Initialization)」といいますが、この初期化をしてください。つまり、最初に変数の値を0にします。そうすることで、スタートしたときにいつでもスコアが0から始まります。
上の図の赤枠の部分が初期化のプログラムです。スコアだけでなくサメの位置と向きに関しても初期化をしています。こうすることで、毎回同じ条件でスタートするようになります。この初期化は基本的ですが、実は忘れる人が多いです。忘れてしまうと予期しない動きをして誤動作の原因になるので注意しましょう。
まとめ
4回に渡ってきた「Scratchの理解するための12の技」も最後になりました。ここまでの内容だけでも、かなりのことが実現できるようになっているはずです。見ていただくだけでは、実感がわかないと思いますので、ぜひご自身で体験していただくことをおすすめします。ScratchはWeb上で完結した開発環境ですので、インストールや環境設定に悩まされることはなく、スムーズに開発に移行できる点もメリットだと思います。
今回紹介していない内容では、論理式や演算子の考え方、関数(ブロック定義)の考え方、ペンの機能、カメラ画像の取得と利用、クローンがありますが、また別の機会にご紹介できればと思います。
プログラミング教室をお探しなら「タイムレスエデュケーション」
「タイムレスエデュケーション」は、東京都文京区小石川、本駒込、新宿区下落合にてプログラミング&ロボット教室を開校しております。詳しいコースにつきましては、下記の「コースについて」からご確認ください。また、無料体験会も実施しております。ご興味のある方はお気軽にお問い合わせください。心よりお待ちしております!