提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。編集者向け:作成する
マウスを追いかけるスプライト

このチュートリアルでは、マウスずっとくっついて動くタイプのスプライトの作り方を紹介する。マウスを追いかけるスプライトと一口にいっても、ボタンが押されたときだけ動くもの、マウスが近くにいるときだけ動くもの、マウスから一定の距離を保つもの、などさまざまなバリエーションがある。

Warning メモ: ここで紹介するスクリプトは、マウスではなく、別のスプライトを追いかけるスプライトにも応用できる。

ずっとマウスにくっついて動く

次のスクリプトを使うと、スプライトがずっとマウスにくっついて動くようになる:

@greenFlag が押されたとき::events hat
ずっと
  [マウスのポインター v] へ行く
end

マウスの後ろをついていく

次のスクリプトをつかうと、スプライトがマウスを後から追いかけるようになる。先ほどと似ているが、すばやくマウスを動かしたときに、スプライトの動きが少し遅れる点が違う。

@greenFlag が押されたとき::events hat
ずっと
  [マウスのポインター v] へ向ける
  (10) 歩動かす
end

または、次のようにする方法もある。

 
@greenFlag が押されたとき::events hat
ずっと
(0.1) 秒でx座標を (マウスのx座標) に、y座標を (マウスのy座標) に変える
end


秒数を指定すれば、自由にスプライトの速度を変えられる。

より正確にするには次のようにする。

@greenFlag が押されたとき::events hat
ずっと
[マウスのポインター v] へ向ける
もし<([マウスのポインター v]までの距離)\>(10)>なら
(10) 歩動かす
でなければ
([マウスのポインター v]までの距離) 歩動かす
end

条件を満たしたときだけマウスを追いかける

次のスクリプトでは、マウスの左ボタンがクリックされている間だけマウスを追いかける。マウスが押されたブロックの場所に、好きな真偽ブロック を入れることができる。

@greenFlag が押されたとき::events hat
ずっと
  もし <マウスが押された> なら
  (0.1) 秒でx座標を (マウスのx座標) に、y座標を (マウスのy座標) に変える
end
end

マウスが近くにいるときだけ、追いかける

次のスクリプトでは、スプライトとマウスが指定した距離より近い場合のみ、スプライトがマウスを追いかける。

@greenFlag が押されたとき::events hat
ずっと
  もし <([マウスのポインター v] までの距離) < [100]> なら
  (0.1) 秒でx座標を (マウスのx座標) に、y座標を (マウスのy座標) に変える
end
end

一定の距離をおいて追いかける

次のスクリプトでは、スプライトがマウスに近づいていくが、絶対にマウスポインターの位置まではやってこない。このスクリプトでは距離が50より近い場合は、スプライトがマウスから遠ざかり、距離50〜70までの間にいるスプライトはまったく動かない。そのため、スプライトが比較的なめらかに移動する。

@greenFlag が押されたとき::events hat
ずっと
[マウスのポインター v] へ向ける
  もし <([マウスのポインター v] までの距離) < [50]> なら
    (-10) 歩動かす
  end
  もし <([マウスのポインター v] までの距離) > [70]> なら
    (10) 歩動かす
  end
end

マウスが遠くにいるときはスピードを上げる

次のスクリプトでは、スプライトからマウスが遠くにいればいるほど素早くマウスに近づいていき、近くまでくると徐々にスピードをおとす。

@greenFlag が押されたとき::events hat
ずっと
  [マウスのポインター v] へ向ける
  (([マウスのポインター v] までの距離) / (12)) 歩動かす
end
Warning メモ: 数値「12」を増やすとスプライトの速度が全体的に遅くなる。一方、減らすと全体的に速くなる