提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。編集者向け:作成する
"に触れた"はこのページにリダイレクトされました。スプライトが特定の色に触れたか判定するブロックについては、() 色に触れた (ブロック)をご覧ください。
() に触れた
[マウスのポインター v] に触れた
カテゴリ 調べる
タイプ 真偽

() に触れたブロック調べるブロック真偽ブロック)は、スプライト

のいずれかに触れたことを判定するブロックである。 実行中のスプライトが上のようなものに触れている(くっついている)場合、このブロックは真(True:はい)を返す。触れていない場合は偽(False:いいえ)を返す。

スプライトが隠れている場合、このブロックの動作が変化するので注意が必要だ。この場合、ほかのスプライトに触れているかどうかの判定は常に偽(False:いいえ)となる。一方、マウスのポインターと端については、スプライトが隠れていない場合と同じように判定される。

使用例

スプライトが何らかのオブジェクトと触れたかどうかを調べる場合、このブロックが使われることが多い。 よくある使用例は次のとおり:

  • 画面の端に触れるまで、スプライトを動かす
<[端 v]に触れた>まで繰り返す
    (3) 歩動かす
end
  • スプライトが、もう1つのスプライトに触れるまで、スプライト同士を追いかけっこさせる
<[スプライト2 v]に触れた>まで繰り返す
   [Sprite2 v]へ向ける
   (3) 歩動かす
end
[捕まえた!] と (2) 秒言う
  • 壁に当たった銃弾を止める
ずっと
もし< [カベ v]に触れた> なら
隠す
  • 迷路プロジェクトで、行き止まりになったかどうかを調べる
ずっと
もし <[迷路のカベ v]に触れた> なら
[行きどまり!] と(1) 秒言う
  • スプライトがマウスポインターに触れたかどうかを調べる
@greenFlag がクリックされたとき
ずっと
もし<[マウスのポインター v]に触れた> なら
コスチュームを[ハイライト v]にする
でなければ
コスチュームを[ノーマル v]にする
end
  • ゲームにて、プレイヤーが敵に触ったかどうかを調べる
ずっと
もし <[敵 v]に触れた> なら
[ゲームオーバー!]と言う
[すべて v]を止める
end

ユーザーからの提案

一部のScratcherから、異なる2つのスプライトが接触したかどうかを調べるブロックを作って欲しいという要望が出ている[1]。このブロックのメリットは、ぶつかり合う2つのスプライトとは違う、別のスプライトからそれらの衝突を調べるられることにある。このブロックが実現すれば次のような見た目になるだろう。 <[スプライト1 v] が [スプライト2 v]に触れた ::sensing> この動作は、次の例のように、グローバル変数を用意しておき、ぶつかる可能性のあるスプライトのどちらかで接触したかどうかを調べて、そのグローバル変数に値を入れれば実現することができる。

// スプライト1に記述
[触れたかどうかをチェック v]を受け取ったとき
もし <[スプライト2 v]に触れた> なら
  [スプライト1がスプライト2に触れた v] を [yes]にする
 でなければ
  [スプライト1がスプライト2に触れた v] を [no]にする
 end

// 接触を調べたい場所に置く
 [触れたかどうかをチェック v] を送って待つ
もし<(スプライト1がスプライト2に触れた) = [yes]> なら
... // 触れていたときの処理
でなければ
... // 触れていなかったときの処理
end

出典

  1. https://scratch.mit.edu/discuss/topic/135012/