こちらは、スクラッチの「〇秒でx座標を〇に、y座標を〇に変える」ブロックの使い方を、詳しく徹底解説しています!
「〇秒でx座標を〇に、y座標を〇に変える」ブロック
「〇秒でx座標を〇に、y座標を〇に変える」ブロックは、指定した時間をかけて、指定したx座標とy座標の位置へスプライトを移動させます。
動きブロックに属するブロックで、主にスプライトに対して動きを与えます。
秒数
指定した「秒数」で指定された場所へ移動するため、時間が短ければ早く、時間が長ければゆっくり移動します。
x座標とy座標の範囲
x座標とy座標の範囲の前に、ステージの画面サイズについて、お話しします。
中心の座標が「x座標:0、y座標:0」なので、上下左右の幅は、x座標が「-240から240まで」、y座標が「-180から180まで」というわけです。(中心から左側・下側が負の値、右側・上側が正の値)
「〇秒でx座標を〇に、y座標を〇に変える」ブロックの座標は、画面サイズと中心座標を基準に指定しましょう。
時間と位置の関係
「〇秒でx座標を〇に、y座標を〇に変える」ブロックは、時間と位置を設定するブロックです。
以下のような関係にあることを理解しておくと、何かと便利です。
- 短い時間+遠い場所=一番早く移動する
- 短い時間+近い場所=意外とゆっくり移動する
- 長い時間+遠い場所=そこそこ早く移動する
- 長い時間+近い場所=気の遠くなるような時間を移動する
こちらのように2つのスクリプトをそれぞれ使ってみて、クリックしてみましょう。
x座標とy座標の指定には、「〇から〇までの乱数」ブロックを使って、ランダムに座標しています。
こちらで、時間と位置の関係を体験できます。
「〇秒でx座標を〇に、y座標を〇に変える」ブロックのデメリット
「〇秒でx座標を〇に、y座標を〇に変える」ブロックは、指定した時間をかけて、指定したx座標とy座標の位置へスプライトを移動させますが、その間、スクリプトの実行がそこで停止しています。
つまり、〇秒かけて移動している間は、そのスプライトは何もできないというわけです。
「〇秒でx座標を〇に、y座標を〇に変える」ブロックの使用例
こちらでは、「〇秒でx座標を〇に、y座標を〇に変える」ブロックの使用例を紹介します。
ランダムに泳ぐ魚
こちらは海の中で魚がランダムに動くプログラムです。
スクリプトの内容は、この通り。
まず、x座標とy座標は、乱数を使って変数に格納しています。
そして、条件分岐で、もしも変数xが0よりも大きい場合は、右向きに、それ以外なら左向きに向きを変えます。
これで、魚が右を向いたり、左を向いたりします。
そして、「〇秒でx座標を〇に、y座標を〇に変える」ブロックを使って、魚をランダムに移動させています。
移動時間については、「1~3」の乱数を設定していて、座標は変数xと変数yを入れています。
これで、海の中で魚が泳いでいるプログラムが完成しました。
ただし、魚の動きを見ると、ちょっとおかしな時がありますよね?
それは、「x座標:0」を基準に、魚の向きを決めているためです。
自然な動きをするには、もう少し手を加える必要があります。
どうやればうまくいくか、考えてみましょう。
動きブロック一覧
「動き」ブロックには、以下の18個のブロックが用意されています。
- スタックブロック・・・15つ
- 値ブロック・・・3つ
ブロックの色は、青色で統一されています。
尚、背景に対しての「動き」ブロックはありません。
背景に動きをつけたい場合は、「背景をスプライトにする方法」があります。
動きブロック | 動作 |
---|---|
〇歩動かす スプライトが現在向いている向きに、指定した歩数だけ動かす |
|
右に〇度回す 指定した数値だけ右回り(時計回り)にスプライトを回す |
|
左に〇度回す 指定した数値だけ左回り(反時計回り)にスプライトを回す |
|
〇へ行く 指定したマウスポインターや他のスプライトの位置に移動する |
|
x座標を〇、y座標を〇にする ステージ上の指定したx座標、y座標にスプライトを移動する |
|
〇秒で〇へ行く 指定した時間をかけて、マウスポインターや他のスプライトの位置に移動する |
|
〇秒でx座標を〇に、y座標を〇に変える 指定した時間をかけて、指定したx座標、y座標にスプライトを移動する |
|
〇度に向ける スプライトを指定角度の方向に向ける |
|
〇へ向ける スプライトを指定したマウスポインターや他のスプライトの方向に向ける |
|
x座標を〇ずつ変える 現在のスプライトのx座標から指定された数値ずつ移動する |
|
x座標を〇にする ステージ上の指定したx座標にスプライトを移動する |
|
y座標を〇ずつ変える 現在のスプライトのy座標から指定された数値ずつ移動する |
|
y座標を〇にする ステージ上の指定したy座標にスプライトを移動する |
|
もし端に着いたら、跳ね返る スプライトがステージの端に触れたとき、スプライトがやって来た方向と逆の方向を向く |
|
回転方法を▢にする スプライトの見た目の回転方法を設定する |
|
x座標 スプライトのx座標を返す |
|
y座標 スプライトのx座標を返す |
|
向き スプライトの向いている角度を返す |