決定版!とか書きましたが、プログラムには色々な作り方がありますので
そういう意味ではぜんぜん決定版じゃないです。
ただ、「初心者でもカンタンにつくれる」という意味で
ためしてみる価値はあるとおもいます!

横スクロールゲームにはいろいろ種類がありますが

・キャラを動かすと、ステージがスクロールするタイプ
・キャラとは関係なく、自動でステージがスクロールするタイプ 

おおむねこのどちらかだと思います。

今回は、自動的にステージがスクロールしていくタイプのゲームで
「ワールド座標をつかわない」プログラムを紹介します。 

「ESCAPE」
https://scratch.mit.edu/projects/88527747/

WS0000
 
元プロジェクトはこちらですが
使っていない変数があったり、変数名がわかりづらかったりしたので
説明のためにリミックスしました。 

では、「中を見る」ボタンをクリックして、プログラムを確認していきましょう。

↓↓続きを読む↓↓ をご覧ください 
 

ステージのつくりかた

ステージのコスチュームからみてみましょう。
WS0001
ステージをえらんで・・・

WS0003
コスチュームタブをクリックすると
ステージのコスチュームがはいっています。

ここで、すきなステージを描きましょう。
コスチュームの数が多ければ、ながいステージになります。
コスチューム同士がつながるように描きましょう。

ステージをスクロールさせよう

つぎに、ステージのスクリプトを見てみましょう。
WS0002

ゲームスタートを受け取ったら、ステージのスクロールをはじめます。
コスチューム1が画面のまんなかまできたら、ステージをクローンします。
そのままさらにスクロールが進み、画面のひだりはしまできたら隠します。

クローンも同じように、次のコスチュームにしたら
画面のまんなかでクローンを作り、画面はしまで移動します。
これをくり返すことで、つぎつぎとコスチューム順にステージをスクロールしていくことができます。

図であらわすとこんなかんじです。
スクロールの説明

この方法だと、ワールドxでスクロールを管理したり
今コスチュームが何枚目か?という管理をせずに
すきな数だけステージをスクロールすることができるので、便利ですね。

ステージに障害物をおこう

さて、ステージのスクリプトの 「クローンされたとき」のスクリプトのなかに
このようなブロックがあります。
WS0004
 
クローンのコスチュームが4だったとき、歯車を表示させるためのフラグを
ここでオンにしています。(0がオフで1がオンです) 

このゲームではフラグをつかっていますが、じっさいには
フラグでも、メッセージでもどちらでもかまいません。

歯車のスクリプトはこのようになっています。
WS0005

旗が押されたときに、隠しつつ、ずっと回転させておきます。
ゲームスタートになったら、歯車フラグが1になるまでまちます。
(ステージのコスチュームが4になるまでフラグは0のまま)

フラグが1になったら、つぎのブロックが実行されます。
あとは、出現する場所によって待ち時間をきめて
自キャラが死んでいなければ、表示して、スクロールします。


この方法をつかえば、ほかのコスチュームのときにも
障害物を置くことができます。
まわす以外にも、面白い動きの障害物をつくってみると
むずかしさがアップしそうですね。

そのほかの演出

このゲームは演出もかわいいので、みてみましょう。

画面上にチカチカしている光の玉
WS0006

「点滅エフェクト」のスプライトです。

コスチュームは、白いマルがひとつだけですが
スクリプトをこのようにくむことで、チカチカしているようにみえます。
WS0007

クローンされたあとはずっと

・出てくるばしょをランダムにして表示
・だんだん透明にしながら、マルをちいさくして
・隠す

の繰り返しです。 

この大きさをかえる部分が、ちょっとフシギな組み方をしていますね。
これはイージングといって
はじめの方は、変化量が大きいけれど、最後の方には変化量がすくなくなる…
のように、変化量を調節することで
単調なアニメーションをさけることができます。

さて、今回はこの
「大きさを(1-大きさ*0.3)ずつ変える」という式を入れることで
こんなふうに大きさが変わってゆきます。
(小数点の誤差はあります)

WS0008

こんなかんじです。
最初は-17ずつと、変化量も大きいですが
10回目になると-0.7とほとんど変化しなくなりました。

イージングは、スタートボタンやタイトル、けむりなどにも
使われていますので、見てみて下さい。

おわりに

ほかの演出はとくにムズカシイ部分もありませんので省略しました。
これで、自動スクロールをつかったゲーム作りが
少しでもはかどればと思います!

今回のスクロールロジックについて理解できれば
自動スクロールではない、スクロールを作りたい時にも役立つと思いますので
画面のなかの座標と、画面のそとの座標を気にしながら
作ってみて下さいね。