提供: Japanese Scratch-Wiki

() 秒でx座標を () に、y座標を () に変えるから転送)

このきじは ひらがなでよめます。ひらがなでよむ
() 秒でx座標を () に、y座標を () に変える
() 秒でx座標を () に、y座標を () に変える
カテゴリ 動き
タイプ スタック

() 秒でx座標を () に、y座標を () に変えるブロック (動きブロックスタックブロック) は、指定したx座標y座標まで、指定した秒数をかけて、スプライトを滑らかに動かすブロック。似た動きはスプライトの向きを指定して、繰り返し () 歩動かすブロックを実行すれば実現できるが、このブロックを使うほうがより動きが正確になる。

ただし、このブロックには、スプライトが動いている間、スクリプトの実行がそこで停止するというデメリットもある。したがって、スプライトが動いている間、そのスプライトは他のことができない。また、このブロックの動作を中断できるのは、() を止めるブロックだけである。もし端に着いたら、跳ね返るブロックは、このブロックの動作中は動作しない。

よくある使用例

このブロックは、スプライトを滑らかに動かしたいときに使用する。

よくある使用例は次のとおり。

  • 水槽の魚を泳がせる
ずっと
((1) から (2) までの乱数) 秒でx座標を ((-240) から (240) までの乱数) に、y座標を ((-100) から (100) までの乱数) に変える
  • 画面の端から端まで動く、オジャマスプライトを出現させる(ゲーム「フロッガー」に出てくる車のような)
 [StartCars v] を受け取ったとき
隠す
x座標を (240) にする
<(ゲームオーバー) = [1]> まで繰り返す
    (自分自身 v) のクローンを作る
    (3) 秒待つ
end

クローンされたとき
表示する
(5)秒でx座標を(-240)に、y座標を(y座標)に変える
このクローンを削除する
  • スプライトを上から落とす
y座標を (180) にする
(1) 秒でx座標を (x座標) に、y座標を (-180) に変える
  • 別のスプライトの位置に移動する
(1) 秒でx座標を ((スプライト2 v) の [x座標 v]) に、y座標を ((スプライト2 v) の [y座標 v]) に変える

() 歩動かすブロックとの比較

下記は、() 歩動かすブロックを使って、スプライトを左端から右端に8秒で動かすスクリプトである。

x座標を (-240) にする
(80) 回繰り返す
    (6) 歩動かす
    (0.1) 秒待つ
end

これを 「() 秒でx座標を () に、y座標を () に変える」ブロックで行うと次のようになる。

x座標を (-240) にする
(8) 秒でx座標を (240) に、y座標を (y座標) に変える

スローアウト効果を使う

このブロックの動きはリニア (直線的:最初から最後まで同じ速度) であり、そのままではスプライトはスローイン (ease-in)/スローアウト (ease-out) しない (これらの効果はグラフィックデザイン分野で非常によく使われる)。ただし、スローイン/スローアウト効果をScratchで再現するのは決して難しくない。次に、目的地にたどり着くに従って速度を落とすスローアウトの例を示す。

[トゥイーン v] を受け取ったとき// トゥイーン (tween) とはフレーム補間のこと
<<(((目的地のx座標) - (x座標))の[絶対値 v]::operators) < [0.25]> かつ <(((目的地のy座標) - (y座標))の[絶対値 v]::operators) < [0.25]>> まで繰り返す
 x座標を (((目的地のx座標) - (x座標)) / (2)) ずつ変える
 y座標を (((目的地のy座標) - (y座標)) / (2)) ずつ変える
end
x座標を (目的地のx座標)、y座標を(目的地のy座標) にする

次のスクリプトでもスローアウト効果を実現できる。このスクリプトの200は、スプライトが到着する目的地のx座標を示している (横方向に移動する)。2つのx座標ブロックをy座標に変更すれば、たて方向 (Y軸方向) へのスローアウトになる。


[トゥイーン v] を受け取ったとき
<((x座標) を四捨五入) = [200]> まで繰り返す
    x座標を(((200) - (x座標)) / (10)) ずつ変える
end

関連項目

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