Scratch各ブロックの使い方(イベント)

2018年4月7日

Scratchで用意されているブロックについてカテゴリーごとに簡単な使い方を説明します。

 

このページでは「イベント」カテゴリーに含まれているブロックを紹介します。他のカテゴリーのブロックの使い方についてはこのページの最後にリンクを記載してありますのでそちらよりご参考にどうぞ。

イベントパレットのブロックの使い方

イベントパレット(カテゴリー)には初期設定で8個のブロックが用意されています。ブロックの形状としてはハッとブロックが6個、スタックブロックが2個となります。

 

(緑の旗)がクリックされたとき

スクラッチで必ず実行されるスタート条件がこの「(緑の旗)がクリックされたとき」ブロックになります。スクラッチで作成されたプロジェクトを共有して実行、または他人が作成したプロジェクトを実行したことがある方はわかると思いますが、最初はグレーアウトされており、中央に緑の旗が表示されています。

 

この緑の旗をクリックしてスクラッチのプロジェクトは実行開始されるため、必ずクリックしなくてはならないボタンとなります。なお、ステージ中央の緑の旗をクリックして実行後に右上の緑のフラッグをクリックしたときにも実行されます。このため、アニメーションやゲームを作る場合には、最初しか実行されないと考えず、進行中にも実行される可能性があるということを考慮しましょう。

 

もっともシンプルな解決策としては緑の旗をクリックで全てがリセットされる(初期設定される)ようにすることです。他にはスタートボタンは別で画面内に用意し、この「(緑の旗)がクリックされたとき」ブロックでは何も実行しないようにするという方法もあります。

 

“スペース”キーが押されたとき

キーボード操作をしたいときに使用するのがこの「”スペース”キーが押されたとき」ブロックになります。”スペース”は変更可能で”英文字“、”数字“、”矢印“を選択できるほか、どのキーを押しても実行される”どれかの“が用意されています。

 

マウス操作ではなく、キーボード操作のゲームを作りたいとき(格ゲーなど)、マウスの代わりに矢印で操作させたいときなどに利用するブロックになります。

 

このスプライトがクリックされたとき

ステージ上のスプライトがクリックされたときに実行したいスクリプトを記述していくのが「このスプライトがクリックされたとき」ブロックになります。

 

主にキャラクターなどのスプライトよりはボタンなどのスプライトに実装することが多く、スタートボタンやストップボタン、ゲームなどではアイテムを使う場合などに使用するブロックになります。ハッとブロックの中でも使い勝手が良く様々な場面での利用が考えられる代表的なブロックになります。

 

背景が”backdrop1″になったとき

背景が変更されたときに実行されるスクリプトを記述するのがこの「背景が”backdrop1″になったとき」ブロックになります。”backdrop1″は変更することができ、右の▼で現在プロジェクトに設定されている背景を選択可能になります。変数などの値ブロックを設定することはできません

 

アニメーションやゲームなどを作っていて、場面の変更で設定やスプライトの位置を変えたいときなどに利用するブロックになります。個人的には他のブロックでも代用できるのであえてこのブロックを使う、といったことはあまりありません。

 

“音量”>”10″のとき

このブロックは、設定したオプション(”音量”、”タイマー”、”ビデオモーション”)のどれを設定するかによってスタート条件が変わってきます。

 

“音量”を設定した場合、パソコンに接続されているマイクを使用して音を拾った場合に実行されます。このため、パソコンに接続されているマイクの使用許可をONにする必要があります。実行する場合に以下のようなポップアップが表示されますので許可しましょう。

 

以下のように「音量>10のとき」ブロックの下に他のブロックを繋げることによって、マイクで音を拾ったときに下のブロックが実行されます。”10″は変更可能で小さい値を設定するほど小さい音にも反応して実行されます。

 

組んだプログラムが以下になります。緑の旗をクリックして実行してみてください。まずカメラとマイクへのアクセス許可を求められますので許可して、その後にマイクに向かって手を叩いてみましょう。ScratchCatが右に進みます。

 

オプションで”タイマー”をセットした場合、スクラッチで用意されているタイマー(調べるパレット)の値によって実行されます。タイマーはスクラッチの実行とともに起動してカウントを始めますので「タイマー>10のとき」とした場合、スクラッチの起動後10秒後に実行されるということです。

タイマーは調べるパレットの「タイマーをリセット」ブロックでリセットすることができますので初回だけでなく繰り返し利用することもできます。例えば、レーシングゲームやシンプルなゲームで時間制限を設けたいときなどの利用が考えられます。

 

“ビデオモーション”を指定した場合は、カメラに写った映像に動きがあった場合に実行されます。数字を小さくするほど小さな動きでも反応してスクリプトが実行されます。監視カメラなどに利用されるような技術で工夫次第で様々なアプリケーションなどに利用が考えられます。ただし、スクラッチという学習環境での利用となると使い道が難しいオプションです。

 

“メッセージ1”を送る、”メッセージ1”を送って待つ

スクラッチで重要な要素の一つである「メッセージ」を送るためのブロックが「”メッセージ1”を送る」ブロックと「”メッセージ1”を送って待つ」ブロックになります。メッセージとは、信号のようなものでとあるスプライトのスクリプトからメッセージを送り、他のスプライトが受け取ることによって複数のスプライトを連動させて動かすことのできる機能になります。

1つのスプライトのスクリプトだけではできることに限界がありますが、このメッセージ機能を使って複数のスプライトを連携させることにより、複雑なこともできるようになるとても重要な機能になります。

 

「”メッセージ1”を送る」ブロックは、メッセージを送信後、その下に続くブロックがある場合は即時実行されます。つまり、次で紹介する「”メッセージ1”を受け取ったとき」ブロックに書かれたスクリプトと同時に実行されていくことになります。

これに対して「”メッセージ1”を送って待つ」ブロックはメッセージを送信後、一旦停止して先に「”メッセージ1”を受け取ったとき」ブロックのスクリプトの処理を先に実行します。「”メッセージ1”を受け取ったとき」ブロックのスクリプトが完了した後に「”メッセージ1”を送って待つ」ブロックの下につなげたブロックが実行されます。 

 

文章にするとわずかな違いですが、実際の動きを想像すると大きな違いであることがわかると思います。どのような動作を求めているのか考えた上でどちらのブロックを使うか決めましょう。

 

“メッセージ1”を受け取ったとき

「”メッセージ1”を送る」ブロックと「”メッセージ1”を送って待つ」ブロックで送信したメッセージを受信するためのブロックが「”メッセージ1”を受け取ったとき」ブロックになります。

 

メッセージはスプライト同士を連携させるときに必要な重要ブロックです。このブロックと「”メッセージ1”を送る」ブロックと「”メッセージ1”を送って待つ」ブロックをうまく使って複雑で難しいプログラムを作ることができます。

 

ブロックの使い方カテゴリ一覧