座標のブロックを使って位置を指定しよう!
Scratchでは、座標を使ってスプライトの位置などを指定できます。プログラムに座標ブロックを取り入れると、より思い通りにキャラを動かせるようになります。
まずは娘の会心のプログラム(詳しくはコチラ)を例に、座標使って位置を指定する方法から見てみましょう。
こちらの場合、ネコ、犬、赤の車、緑の車の4種類のスプライトが使われていて、ネコと犬が車に乗っているように見える位置に、それぞれが配置されています。
一度車を走らせると、同じ位置に手動で戻すのが面倒なのが難点なプログラムです。
そこで座標を指定できるブロック使って、この位置に一瞬で戻せるようにします。
画面上で座標を確認しよう
まずはそれぞれのスプライトが「現在いる位置」がどこなのかがわかるように、ステージ上に座標を表示させてみます。
座標を知りたいスプライト(図では犬)を選択したら、画面中央のパレットの「スクリプト」タブで「動き」を選択。
一番下にある、「x座標」と「y座標」にチェックを付けます。図のように画面上に表示されて、位置がすぐわかります。
この場合、犬の現在の位置は、x座標が-165、y座標が-18ということがわかりました。
位置指定用のブロックを、きっかけのブロックにくっつける
指定した位置にスプライトを配置するためのブロックは、「x座標を〇、y座標を〇にする」です。このブロックを見ると、選択しているスプライト(この場合は犬)の現在の位置の座標が表示されていることがわかります。
そのため今の位置に犬を配置したい場合は、「x座標を〇、y座標を〇にする」のブロックを位置につくためのきっかけのブロックの下につなげるだけでOKです。
このようにブロックを並べることで、緑に旗をクリックしたとき(つまりアプリの起動時)に、指定の位置へ移動。
その後スペースキーを押したときに、170歩移動させることができます。
同じ設定をそれぞれのスプライトに行います。たとえばこちらは緑の車の場合。座標の数値が緑の車の位置に変わっています。
ネコと赤い車も同じようにすればOK!
試しに動かしてみます。最初はあえててんでバラバラに配置。
緑の旗をクリックすると、乗り込む!!
スペースキーを押すとGO!
このように進んだ後でも、緑の旗をクリックすれば、最初の位置にまたすぐ戻せるようになりました。
座標を使ってキャラを動かすことも!
座標を指定して動きを演出することもできます。代表的な例を2つ見てみましょう。アレンジすることでいろいろな動きができますよ。
指定した位置にススーっと移動
まずはこちら。この変身ネコを空へと移動させます。
前の記事でもネコを空へと移動させていますが、あちらではネコの角度を変えて空に向け、歩数を指定して前進させました。
このようにネコが上を向いています。この状態で空に向かって歩いていくような動きです。
それに対して、今回使用するのはこちらのブロック。
「スクリプト」タブの「動き」にある「〇秒でx座標を〇に、y座標を〇に変える」ブロックをきっかけのブロックにくっつけて、秒数や位置の条件を図のように指定しました。5秒間かけて、空の方の座標へと移動していく感じです。
実行してみるとこんな具合。
エスカレーターに乗っているような動きで、スーッと目的地へ移動していきます。
ゲームの定番動作、ジャンプをさせよう
座標の変化を利用すると、ゲームの定番の動き「ジャンプ」も設定できます。
スクリプトはこちら!
スペースしたときに、y座標を変えて上の方へ、0.3秒後にさらにy座標を変えて下の方へというもの。実行してみます。
y座標(縦の位置)だけを変えるシンプルなタイプなので、横位置は変わらず、その場でピョンとジャンプします。
アレンジすればいろいろなジャンプができる
飛び上がりながら前に進ませたいときは、横の位置(x座標)を一定の数値ずつ変更できる「x座標を〇ずつ変える」ブロックと組み合わせると簡単です。
動きはこんな具合。
また、先ほど使用した「〇秒かけて指定した座標までキャラを移動させる」ためのブロックを使えば、スローモーション風なジャンプにもできます。
座標を指定できるようになると、とりあえずこの辺り…というアバウトなものから、いつも同じように動かせるものへとアプリが進化します。
ワンランクアップにはぜひ覚えたい機能です。