Scratchでよく使われる便利なコード3

Scratchでよく使われる便利なコードの使用例です。今回は「スクロール」の作成方法です。これを参考にいろいろと試して見てください。

縦や横にずっと移動

レースゲームや横向きのシューティングゲームなど画面の背景を移動させることで、その方向へ移動しているように見せるゲームの作り方です。このとき背景を縦方向か横方向にスクロールすることでずっと移動しているように見えます。

縦方向の移動を例に説明します。移動させる背景をスプライトで作ります。そしてこのスプライトをステージのコードでコントロールします。

スプライトを描く画面で縦方向に移動するコースを描きます。このスプライトの名前をコース1とします。

コードはプログラムが始まったときは画面中央に表示して、「動作」メッセージを受け取ったらX座標を0、Y座標を変数「スクロールY」にします。「スクロールY」変数はすべ

てのスプライト用に作ります。

次にこのスプライトを複製します。そして、コスチュームを上下に反転させます。このスプライトの名前をコース2とします。

コードはプログラムが始まったときは、X座標は0、Y座標は360にします。ステージ上に表示されるY座標は−180〜180ですが、見えない範囲の座標指定も可能なのです。Y座標を360にするということは、ステージ1画面分上にするということになります。

こうすることで背景は連続した画像になります。つまり、この2つのスプライトを続けて表示することで、ずっと移動しているように見えます。

もし、2つのスプライトをスクロールさせたときに継ぎ目に線が入っていた場合は、スプライトの大きさをコース1,2共に101にして調整してください。

コース2に以下のコードを追加します。

「動作」メッセージを受け取ったら、コース1の位置によって、その上か下にしています。コース1が中心より下にいたら上にして、中心より上にいたら下にしています。

そして、このコース1,2の動作をステージのコードでコントロールします。

ステージのコードでコース1,2の速度を設定するために「スクロール速度」変数をすべてのスプライト用に作ります。それから以下のようなコードを作ります。

「計算」メッセージを受け取ったとき、スクロール速度を−5にして、スクロールYをスクロール速度ずつ変えます。

もし、スクロールYが−360より低ければ(隠れた1画面分下よりさらに下なら)、隠れた1画面分上にします。

そして、プログラムが始まったらずっと「計算」「動作」のメッセージを送って待つブロックを繰り返すことで、ずっとコースを移動しているように見えます。

横のスクロールも同じ要領で、横向きの背景のスプライトを作り、スクロールYをスクロールXにして、X座標を変更すれば横スクロールができます。X座標はステージ上で表示される範囲が−240〜240なので、この範囲で画面がつながるように調整してください。

以下はスクロールのコードサンプルです。縦横スクロールのコードが含まれています。それぞれのコースをロケットが移動します。ロケットは上下左右矢印キーで操作します。ランダムに表示される宝石を回収するプログラムです。

【縦横スクロール】

https://scratch.mit.edu/projects/290698134/