提供:Japanese Scratch-Wiki

このきじは ひらがなでよめます。ひらがなでよむ
"に触れた"はこのページにリダイレクトされました。スプライトが特定の色に触れたか判定するブロックについては、() 色に触れた (ブロック)をご覧ください。
() に触れた
(マウスのポインター v) に触れた
カテゴリ 調べる
タイプ 真偽

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

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

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

使用例

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

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

ユーザーからの提案

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

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

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

また、右端に触れた場合などを検出できるようにすることも提案されている。これを実現するためには、

  • 端に線を置く
  • x座標を比較する

などの方法がある。

出典

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。