提供: Japanese Scratch-Wiki

(より正確にするには)
(一定の距離をおいて追いかける)
80行目: 80行目:
 
@ がクリックされたとき
 
@ がクリックされたとき
 
ずっと
 
ずっと
  [マウスのポインター v] へ向ける
+
[マウスのポインター v] へ向ける
 
   もし <([マウスのポインター v] までの距離) < [50]> なら
 
   もし <([マウスのポインター v] までの距離) < [50]> なら
 
     (-10) 歩動かす
 
     (-10) 歩動かす

2017年7月30日 (日) 13:05時点における版

マウスを追いかけるスプライト

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

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

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

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

@ がクリックされたとき
ずっと
  [マウスのポインター v] へ行く
end

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

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

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

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

 
@ がクリックされたとき
ずっと
(0.1) 秒でx座標を (マウスのx座標) に、y座標を (マウスのy座標) に変える
end


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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