【Scratch入門】「10歩動かす」と「X座標を10ずつ変える」の違い #初級編

◇--プログラミングのこと ◇Scratch入門

〔10歩動かす〕と〔X座標を10ずつ変える〕


同じように見える2つのコマンドですが、動きに差があります。
実際に動かしてみましょう。




折り返しに差が出る


壁に向かって歩くプログラムを作ってみます。


まず最初に「おまじない」をかけます。
おまじないは難しい言葉で言うと「初期化」です。
プログラムが実行されたときに、前回の動きをリセットしてまっさらな状態に戻します。
ここでは、開始時にネコの位置を画面中央へ移動し、右を向かせます。
回転方法を左右のみにすることで、右の壁にぶつかったときは左向きに、左の壁にぶつかったときは右向きに回転するようになります。





画面中央が、X座標0、Y座標0の位置です。
右に進むとX座標の値が大きくなり、左に進むとX座標の値がマイナスになります。
Y座標は縦の軸です。
Y座標にマイナスを指定すると画面上の方へ移動し、Y座標の値を大きくすると画面下の方へ移動します。





それでは〔10歩動かす〕〔もし端に着いたら、跳ね返る〕の2つのブロックを実行します。
すると、ネコは右向きに進んでいきます。
そして、端までたどり着いたら跳ね返ります。
跳ね返ったあとは、左右が反転して左方向へ進んでいきます。





こんどはブロックを変更してみましょう。
〔X座標を10ずつ変える〕〔もし端に着いたら、跳ね返る〕の2つのブロックを実行します。
先ほどと同じように、ネコは右向きに進んでいきます。
端までたどり着いたらネコの左右が反転します。
しかし跳ね返ったあと、ネコは歩く(前へ進む)のではなく、X座標を10進める、つまり画面右方向へ進んで行こうとするため、また壁に向かって進みます。






ネコの角度を斜めにしてみる


ネコの角度を変えると、もっと分かりやすいかもしれません。


最初のおまじない(初期化)の時に、ネコを45度の方向へ傾けてみます。
回転方法も、左右だけじゃなくて斜めにも回転するように設定しておきます。




さあ、旗を押します。
〔X座標を0、Y座標を0にする〕が実行されるため、ネコが画面中央へ移動します。
そして、〔45度に向ける〕が実行されて、ネコが斜め上の方向を向きます。




先ほどと同じように〔10歩動かす〕〔もし端に着いたら、跳ね返る〕のブロックを実行します。
すると、壁に跳ね返る時に、画像のように自然に歩いているような跳ね返り方をします。




〔X座標を10ずつ変える〕にすると、ネコが歩くというよりは物体が右にズレるという動きをします。
ネコが向いている方向は関係なく、画面右に動いていきます。







これが〔10歩動かす〕と〔X座標を10ずつ変える〕の2つのブロックの違いです。

例えば、ネコが歩くようなプログラムを作る時は〔10歩動かす〕のブロックを使い、雨が降るようなプログラムを作る時は〔Y座標を10ずつ変える※〕のブロックを使うのが一般的です。

※雨は上から下に移動するので、X座標ではなくY座標となります




QooQ