提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。
() までの距離
[マウスのポインター v] までの距離
カテゴリ 調べる
タイプ

() までの距離ブロック(調べるブロック/値ブロック)とは、スプライトと、次のいずれかの対象との距離をユークリッド距離(ピクセル値)で返すブロックである。

Scratchキャットが貝がらお化けとの距離をしゃべっている様子。

ドロップダウンリストに何も指定されていないとき、すでに削除されたスプライトが指定されているときは、距離として「10000」を返す。

使用例

このブロックを使うと、2つの物体の距離を調べられるので、位置関係を細かく調べて、動きを調整するようなプロジェクトで役に立つ。 よくある使用例は次のとおり:

  • 衝突するタイミングを見積もる
もし <([雪玉 v] までの距離) < (40)> なら
[気をつけて!] と言う
 <[雪玉 v]に触れた>まで待つ
[] と言う //ふきだしをしまう
[すべて v] を止める
  • 距離を調べて、スプライトがどれだけ動けば目標地点につくかを決める
[動く回数 v] を ((([隕石 v] までの距離) / (10))の[切り上げ v]::operators) にする //「動く回数」は10ピクセルずつ動いたときの、隕石に到達するまでの回数
  • ロケットをどれくらい遠くまで発射するか決める
[実際の距離 v] を ((([小惑星 v] までの距離) * (10000)) と [ キロ])にする//ピクセル上の距離を現実の距離と結びつける
  • 的あてゲームで、中心からの距離を調べて点数を変える
[得点 v] を ((1800) - ((10) * ([的の中心 v]までの距離)))ずつ変える
  • 別のスプライトの周りを動く場合に、距離に応じて変数の値を変える
ずっと
[安全度 v] を ((100) - (([家 v]までの距離) / (3))) にする

別のブロックによる表現

詳細は「代用ブロック一覧」を参照

このブロックの動作は、次のスクリプトで再現できる。

(((((x座標)-([スプライト v]の[x座標 v]::sensing))*((x座標)-([スプライト v]の[x座標 v]::sensing)))+(((y座標)-([スプライト v]の[y座標 v]::sensing))*((y座標)-([スプライト v]の[y座標 v]::sensing))))の[平方根 v]::operators)

ユーザーからの提案

Scratcherの一部から、スプライトではなく指定した座標位置までの距離を返すブロックがほしいという声が上がっている[1] 。これが実現すれば、次のようなブロックとなるだろう。

(x座標 () y座標 () までの距離:: sensing)

技術的には、これは次のスクリプトで代用できる。


(((((x座標)-(求めるx座標))*((x座標)-(求めるx座標)))+(((y座標)-(求めるy座標))*((y座標)-(求めるy座標))))の[平方根 v]::operators)

出典

  1. https://scratch.mit.edu/discuss/topic/109628/?page=1#post-963174