更新日:、 作成日:

スクラッチ 好きなイベントを作成する

はじめに

Scratch (スクラッチ) 3 で好きなイベントを作成する方法を紹介します。

値が変更されたときや、値が大きくなったときなど、条件として判定できるものは何でもイベントとして発生させられます。

イベントの使い方は「イベントブロックの使い方」をご覧ください。

イベントを作成するには

when-key-pressed

スクラッチにはキーが入力されたときや、音量が大きくなったときなどのイベントが用意されています。それ以外のイベントを作成するには、次のようにします。

  • イベントを監視する
  • 発生する条件を作成する
  • イベントを発生させる

完成例

スプライトのコスチュームが変更されたときのイベントを作成する例を紹介します。

4

6

7

簡単に説明すると、ずっと ブロックで常にループします。その中でイベントを発生させる条件に一致するかを判定します。一致するときにメッセージを送信してイベントを発生させます。

スクラッチでは ずっと ブロックや 待つ 系のブロックを使用すると CPU の使用率が少し高くなります。それを理解した上で使用してください。

「値が変更されたとき」のイベントと「値が大きくなったとき」のイベントを作成する方法を紹介します。

変更されたときのイベントを作成する

when-backdrop-switch

コスチュームが変更されたときなど、値が変更されたときのイベントを作成する方法を紹介します。

イベントを監視する

イベントを監視するときはずっとループします。メッセージを使うことで、ループしながら他の処理を動かせます。

イベント監視用のメッセージを作成して、それを送信します。ここでは「イベント監視」にします。

1

「イベント監視」メッセージを受け取ったときに [ずっと] ブロックで監視します。

2

発生する条件を作成する

ずっと ブロックの中にイベントを発生する条件を作成します。条件に指定できるものはすべてイベントにできます。

[もし~なら] ブロックで条件に一致するかを判定します。これがイベントを発生させる条件になります。

3

例として、スプライトのコスチュームが変更されたときのイベントを作成します。

イベントを監視する前に、コスチュームが変更されたかを判定するために、変数に現在のコスチュームを設定します。

4

イベントを発生させる条件として、現在のコスチュームと変数に設定したコスチュームを比較します。違っていたら変更されています。

5

イベントを発生させる

条件に一致しているときに、メッセージを送信してそれをイベントとして使用します。

イベント発生用のメッセージを作成してそれを送信します。ここでは「イベント発生」にします。次のイベントを発生させるために、最新のコスチュームを変数に設定します。

6

「イベント発生」メッセージを受け取ったときが、コスチュームが変更されたときのイベントになります。

7

値が大きくなったときのイベントを作成する

when-more-than

指定した値より大きくなったときのイベントを作成する方法を紹介します。基本は「変更されたときのイベントを作成する」と同じです。

このイベントの特徴として、10 より大きくなったときに発生するなら 20 から 30 に変化しても発生しません。10 より下の値からそれを超える値になったときに発生します。

例として、音ブロックの音量が大きくなったときのイベントを作成します。

値が条件を下回ったかを判定するために、変数にその条件の結果を設定します。初期値は固定で下回っていない「false」にします。そしてイベントを監視します。

8

イベントを発生させる条件は「条件に一致する」かつ「一度条件を下回っている」にします。

10

イベントを発生させるメッセージを送信します。次のイベントを発生するには、条件を一度下回る必要があるので、変数に下回っていない「false」を設定します。

11

条件を下回ったかを判定して、下回っているなら変数に「true」を設定します。

9

条件を「より小さい」にすると、値が小さくなった時のイベントも作成できます。