提供:Japanese Scratch-Wiki
() 秒で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
関連項目
() 歩動かす • () 度回す • () 度に向ける • () へ向ける • x座標を () 、y座標を () にする • () へ行く • () 秒でx座標を () に、y座標を () に変える • () 秒で () へ行く • x座標を () ずつ変える • x座標を () にする • y座標を () ずつ変える • y座標を () にする • もし端に着いたら、跳ね返る • 回転方法を () にする • x座標 • y座標 • 向きその他のブロック
|