
今回紹介するのはこちら。ランニングアクションゲーム
「DINO RUSH(ディノラッシュ)」(日本語ソースにしたかったのでリミックス版です)

この恐竜どこかでみたことがありませんか?
Google Chromeを使っている人は、見たことがあるかもしれませんね。
これは接続エラーのときに現れる恐竜です。
(参考:Google Chromeの接続エラー画面でミニゲームが出来る!みんなは何点取れる?/ゴゴ通信)
この接続エラー画面ではミニゲームができるのですが
そんなに接続エラーなんて起こりませんよね。
Scratcで作ったDINO RUSHなら、いつでもミニゲームが楽しめますよ~。
ランニングアクションで有名なものと言えば「クッキーラン」がありますが
今回紹介する作り方でも、カンタンに作れてしまいます。
中を見るボタンからスクリプトを確認してみましょう。

恐竜を走らせよう
まずはメインの恐竜を走らせてみましょう。恐竜のスクリプトはこちら

(画像をクリックで拡大)
ゲームスタートのスクリプトが3つありますね。
スクラッチではこのように、いくつかのスクリプトを同時に使うことができます。
まず、いちばん上のゲームスタートを受け取ったときの処理は
アニメーションのしょりです。ずっとあしぶみさせている状態ですね。
中央にあるゲームスタートを受け取ったときの処理では
サボテンとの当たり判定をしています。今回はフラグをつかっています。
スコアや変数のかんりは別のスプライトが行っているので
ここではフラグを立てるだけでOKです。
いちばん下にあるゲームスタートを受け取ったときの処理では
ジャンプの処理をしています。
スペースキーが押されたか、↑キーが押されたときに、灰色に触れていたらジャンプOKとなります。
灰色は地面の色なので、恐竜が地面にいないときはジャンプできないというしくみです。
恐竜はゲーム内で走っているように見えますが
プログラムをみてみると、その場であしぶみしたり、ジャンプしたりするだけで
場所がうごいているわけではないんですね。
動いているようにみえるためには、「背景のほうをうごかす」必要があります。
背景を動かそう
では、背景をうごかしてみましょう。背景にはサボテンと、砂と、雲がありますね。まずは恐竜との当たり判定をするサボテンからうごかしてみましょう。
スクリプトはこんなかんじ

(画像をクリックして拡大)
ゲームスタートを受け取ったら、ランダムでサボテンを作りつづけます。
「0.5から2.5までの乱数」という部分がランダムですね。
この乱数が1なら1秒まつ、2.5なら2.5秒まつ というふうになります。
クローンを作るかんかくをランダムにすることで、ゲームをすこし難しくしています。
この間隔を短く(たとえば0.1秒とか)にするとサボテンがものすごい勢いで
ながれてきますので試してみて下さい

逆にカンタンにしたいときは、秒数をふやせばいいですね。
このへんはゲームを実際にやりながら、調整してみて下さい。
クローンされたら、サボテンをみぎはしにセットして
左向きにうごかします。
画面の左までいったら、クローンをさくじょします。シンプルですね。
サボテンのうごくスピートを変えたい時は
「xを-10ずつ変える」のブロックの数字を変えてみて下さい
(数字はマイナスにしないと、右方向にいってしまうので注意)
つぎに、砂つぶも作っていきましょう。

(画像をクリックして拡大)
砂も、サボテンとほとんど同じプログラムですね。
ゲームスタートしてから、待ち時間なしでクローンをつくりつづけています。
サボテンとちがうところは、出てくる場所をランダムにしているところです。
x座標の場所は変わりませんが、y座標をすこしだけ変えていますね。
これで、砂がパラパラといろんなところに表示されて
砂漠っぽい背景になりました。
つぎに、雲のスクリプトです。

(画像をクリックして拡大)
サボテンや砂とちがい、雲は遠くにあるのでゆっくりとうごかします。
出てくる間隔も、ゆっくりにします。
クローンされると、タテの位置をすこしランダムにします。
くもは大きくて、出てきたときから画面端に触れてしまいますので
「端に触れたら」のブロックは使わずに
x座標が-240より小さくなったら(画面のひだりはしにきたら)
クローンを削除するようにします。
これで、背景も完成ですね。
ハイスコアを記録しよう
ゲームオーバーやスコアは、「スコアのかんり」というスプライトで行っています。スプライトをつくらなくても、背景のスクリプトにかいてもOKですが
今回は原作者がスプライトに書いてるのでこのままいきます。
変数のかんりを開くとこんなかんじです

(画像をクリックで拡大)
はじめに、「死んだ」変数のフラグと、「スコア」変数を0にしておきます。
ハイスコアは0にしません。
あとはずっと、死んだかどうかを判定して
死んでいたら(死んだフラグが1になっていたら)ゲームオーバー
死んでいなかったら(死んだフラグが0のままだったら)スコアをプラス1します。
もうひとつの「ゲームスタートを受け取ったとき」のスクリプトでは
ハイスコアを更新したかどうかをチェックします。
もしハイスコア更新なら(ハイスコアよりスコアが大きければ)
ハイスコア変数のなかみを、スコア変数でうわがきします。
このように、ハイスコア変数を初期化しないことで、ハイスコアのかんりをしています。
スクラッチャーの証!クラウド変数
あなたがまだスクラッチをはじめて間もないならプロジェクトページを開いたときに、こんなメッセージがでませんでしたか?

このメッセージは、クラウド変数を使えないよ~っていう説明です。
クラウド変数には、こんな雲のマークがついています。

「クラウド変数」とは、オンライン上に保存しておける、ほかのユーザも共通して使える変数のことです。

ふつうの変数のとき、ハイスコアはそれぞれのユーザによってちがいます。
クラウド変数をつかうと、だれかほかのユーザがハイスコアを更新すると
自分のハイスコア変数も更新されます。
ハイスコア更新のときに、ユーザ名もクラウド変数に保存しておけば
だれがハイスコアをとったのかがわかるようになりますね。
スクラッチャーになるには?
自分のプロフィール欄をみて「New Scratcher」となっていたらまだスクラッチャーにはなっていません。

New Scratcherのよこに(★Become a Scratcher!)と書かれているリンクが出ていれば
このリンクをクリックして「次へ」と進んでいくとスクラッチャーになれます。
リンクが出ていなければ、まだスクラッチャーにはなれません。
スクラッチャーになるには
・プロジェクトをたくさん作る
・ほかの人の作品に★やハートをつける
・ほかのユーザをフォローする
・ほかのユーザからフォローされる
・コミュニティに書き込みをする
などの色々な要素がくみあわさっています。
プロジェクトが少なくても(5つ以下でも)
スクラッチ上で色々な活動をすることによって、スクラッチャーになることができます。
プロフィールもなるべく埋めておいた方がいいみたいです。
さいごに
タイトル画像やゲームオーバーの画面は、表示・隠すのプログラムだけなのでしょうりゃくしました。
今回のDINO RUSHを応用すれば、クッキーランのようなゲームをつくることもできますね。
スコアを時間でつけるんじゃなくてアイテムをとるようにするとか…
ぜひいろんなアレンジ作品をつくってみてくださいね。
コメント