こちらは、スクラッチの「調べる」ブロックの中にある「マウスが押された」ブロックの使い方を、詳しく徹底解説しています!
「マウスが押された」ブロック
「マウスが押された」ブロックは、ステージ上でマウスがクリックされたときに「真(true)」を、そうでないときに「偽(false)」を返します。
「真(true)」か「偽(false)」で返すブロックを「真偽ブロック」といいます。
「真偽ブロック」は、六角形の形をしており、真(True)または、偽(False)のいずれかの「条件・状態」を持つブロックです。(Scratchのブロックの種類と役割について)
検知対象
「マウスが押された」ブロックの検知対象は、主に以下の通りです。
- 左クリック
- 右クリック
- ホイールクリック
- サイドクリック
サイドクリックについては、マウスの種類によって搭載数が異なりますが、手元のマウスで調べた限りは、マウスから発信されるクリック信号は、すべて対象でした。
ただし、ホイールのスクロールは検知対象外です。
もしも、ホイールのスクロールを検知したい場合は、こちらの処理で検知できます。
検知範囲
「マウスが押された」ブロックの検知範囲は、マウスがステージの中にある場合のみです。
ステージの外でマウスが押されたとしても、検知されません。
「マウスが押された」ブロックの使い方
それでは、「マウスが押された」ブロックの使い方を見ていきましょう。
こちらは、「Ball」スプライトがステージ上を動き回り、マウスを押すと停止するプログラムです。
「緑の旗が押されたとき」ブロックを使って、緑の旗がクリックされたときに、その下のスクリプトを実行します。
こちらでは、2つのスクリプトを並列処理で実行させています。
こちらでは、
こちらは、「ずっと」ブロックを使って、「Ball」スプライトがステージ上を動き回ります。
繰り返し処理の中で、「◇まで待つ」ブロックを使って、マウスを押している間、「Ball」スプライトが止まります。
具体的に説明すると、「◇まで待つ」ブロックは、指定した条件を満たすまでプログラムを一時停止するブロックです。
条件を満たすとは、つまり「true」の状態です。
「◇まで待つ」ブロックの条件には、指定した条件がtrueであればfalseを、そうでないときにtrueを返す「◇ではない」ブロックを入れています。
つまり、マウスが押されていない時に「true」を返すので、逆にいえば、マウスが押されている時は「false」の状態というわけです。
条件を満たす(「true」の状態)までは、プログラムを一時停止しますので、「Ball」スプライトも止まります。
こちらは、「マウスが押された」ブロックの状態を知るためのチェック用スクリプトです。
実際に、緑の旗をクリックして、プログラムを実行してると、何もしていない時は、マウスの状態は「false」で、「Ball」スプライトが自由に動き回ります。
ステージ上で左クリックを押すと、マウスの状態は「true」になり、「Ball」スプライトが止まります。
調べるブロック一覧
「調べる」ブロックには、4個のハットブロックと5個の真偽ブロックと11個の値ブロックの計20個のブロックが用意されています。
ブロックの色は、水色で統一されています。
調べるブロック | 動作 |
---|---|
〇に触れた 指定した対象物に触れたらtrueを、そうでないときにfalseを返す |
|
〇色に触れた 指定した色に触れたらtrueを、そうでないときにfalseを返す |
|
〇色が〇色に触れた 実行するスプライトの指定色が、もう一方の指定職に触れたらtrueを、そうでないときにfalseを返す |
|
〇までの距離 実行するスプライトから指定した対象物までの距離の値を返す |
|
〇と聞いて待つ 指定したテキストを表示させ、画面下の入力ボックスの入力が完了するまで待つ |
|
答え 「〇と聞いて待つ」ブロックの入力した値を返す |
|
〇キーが押された 指定したキーが押されたらtrueを、そうでないときにfalseを返す |
|
マウスが押された マウスキーが押されたらtrueを、そうでないときにfalseを返す |
|
マウスのx座標 マウスのx座標の値を返す |
|
マウスのy座標 マウスのy座標の値を返す |
|
ドラッグ▢ようにする ドラッグモードを設定する |
|
音量 音量の値を返す |
|
タイマー Scratchが内部で管理しているタイマー値を返す |
|
タイマーをリセット タイマーの値を「0.0」に戻す(タイマーをリセット) |
|
〇の▢(ステージの背景#) 指定のスプライトやステージの指定の値を返す |
|
現在の▢(ローカルタイム) 現在(ローカルタイム)の指定した「年」「月」「日」「曜日」「分」「秒」を返す |
|
2000年からの日数 UTCの2000年1月1日午前0時0分0秒からの経過日数を返す |
|
ユーザー名 作品を閲覧しているユーザー名を返す |