他の車をつくっていこう
左車線の車を登録する
画像をアップする
まずは左車線の車の画像と、ガソリンマークの画像をアップロードします。
コスチューム名はそれぞれ「左・車1」「左・車2」「左・車3」「ガソリン」としておきます。
この画像、一見気づきにくいのですが、じつは当たり判定のために、緑色を忍ばせています。
そして、ガソリンマークの画像にはピンク色を忍ばせています。
「自分」のスプライトが、車の画像の緑色に触れたらクラッシュ、ガソリンマークのピンク色に触れたらガソリンが増える、というスクリプトをあとで入れます。
スプライト名は「左車線」としておきます。
スクリプトを追加する
白線と同様に、「大きさ」「x座標」「y座標」の変数を使って、徐々に大きく、徐々に速くなるようにします。
一旦表示されたら、「0から5までの乱数」秒待ってから、再び表示されるのを繰り返します。
ただ、クラッシュした直後にすぐ車が来ると、またすぐクラッシュしてしまうので、クラッシュしたときは2秒待ってから表示します。
「コスチューム#(自分)> 3」というのは、「自分」のコスチューム番号が3より大きい数、つまり4か5か6のときという意味です。
「自分」のコスチュームを見てみると、番号4、5、6はクラッシュしているときということがわかります。
なので、クラッシュしたときのみに限定したい場合は、番号4、5、6を指定してあげればいいので、「コスチューム#(自分)> 3」という条件を入れています。
中央車線の車を登録する
画像をアップする
中央車線の車の画像と、ガソリンマークの画像をアップロードします。(ガソリンマークの画像は、左車線のと同じ画像です)
中央車線の車の画像にも、当たり判定のための緑色を忍ばせています。
スプライト名は「中央車線」としておきます。
スクリプトを追加する
スクリプトの内容は「左車線」とほぼ同じなので、左車線のスクリプトをコピーしてから、中央車線用に直していきます。
右車線の車を登録する
画像をアップする
右車線の車と、ガソリンマークをアップロードします。
右車線の車の画像にも、当たり判定のための緑色を忍ばせています。
スプライト名は「右車線」としておきます。
スクリプトを追加する
スクリプトの内容は「左車線」とほぼ同じなので、左車線のスクリプトをコピーしてから、x座標を右車線用に直していきます。
車にぶつかったらクラッシュするようにしよう
音を追加する
「自分」のスプライトの「音」タブをクリックし、ライブラリから「screech」を追加します。
スクリプトを追加する
「スクリプト」タブをクリックします。
他の車の画像に忍ばせた「緑色」に触れたら、ガソリンを「5」減らし、クラッシュ用の画像に変えて「screech」の音を鳴らし、3回点滅してから、元の画像に戻します。
「screech」の音を鳴らして3回点滅するスクリプトは、どの車線にいるときも共通なので、スクリプトエリアの「その他」を開き、「ブロックをつくる」で「点滅」というブロックを作ってまとめました。
こうしておくと、スクリプトがすっきりして見やすくなるので、他の人が見てもわかりやすくなります。
スクリプトを修正する
ここまでで一旦動かしてみると、クラッシュして点滅している間に車線変更すると、画像が正しく表示されない(別の車線のときの画像が表示されてしまう)ことがわかります。
そこで、クラッシュして点滅している間は車線変更をできないように、スクリプトを追加します。
「コスチューム#(自分)< 4」というのは、「自分」のコスチューム番号が4未満、つまり1か2か3のときという意味です。
コスチューム番号1か2か3というのは、クラッシュしていない画像のときという条件になります。
ガソリンをチャージできるようにしよう
音を追加する
「自分」のスプライトの「音」タブをクリックし、ライブラリから「water drop」を追加します。
スクリプトを追加する
「スクリプト」タブをクリックします。
ガソリンマークの画像に忍ばせた「ピンク色」に触れたら、ガソリンを「2」増やし、「water drop」の音を鳴らし、2秒待ちます。
「2秒待つ」を入れているのは、「自分」がガソリン画像のピンク色に触れている間中、ガソリンが2ずつ増え続けてしまうので、最初に触れてから「2秒待つ」とすれば、2秒後にはガソリン画像から離れているので重複して加算されないからです。
ガソリンゲージを表示しよう
画面の左上に、ガソリンのゲージを表示するためのスプライトを作成します。
画像をアップする
0から15までの画像をアップします。
コスチューム名を、それぞれ「0」「1」「2」「3」…「13」「14」「15」としておきます。
このとき、必ず半角でネーミングしてください。あとで重要になります!
スプライト名は「ゲージ」と変更しておきます。
スクリプトを追加する
スクリプトに書きたい内容は、
- 変数「ガソリン」が15以上なら、コスチューム「15」を表示する
- 変数「ガソリン」が14なら、コスチューム「14」を表示する
- 変数「ガソリン」が13なら、コスチューム「13」を表示する
- 変数「ガソリン」が12なら、コスチューム「12」を表示する
- 変数「ガソリン」が11なら、コスチューム「11」を表示する
- 変数「ガソリン」が10なら、コスチューム「10」を表示する
- 変数「ガソリン」が9なら、コスチューム「9」を表示する
- 変数「ガソリン」が8なら、コスチューム「8」を表示する
- 変数「ガソリン」が7なら、コスチューム「7」を表示する
- 変数「ガソリン」が6なら、コスチューム「6」を表示する
- 変数「ガソリン」が5なら、コスチューム「5」を表示する
- 変数「ガソリン」が4なら、コスチューム「4」を表示する
- 変数「ガソリン」が3なら、コスチューム「3」を表示する
- 変数「ガソリン」が2なら、コスチューム「2」を表示する
- 変数「ガソリン」が1なら、コスチューム「1」を表示する
- 変数「ガソリン」が0以下なら、コスチューム「0」を表示する
ということです。
これをスクリプトにすると、以下のようになります。
変数「ガソリン」の数値をそのままコスチューム名として指定しているので、コスチューム名は半角にしておきましょう。
ゲームオーバー画面を設定しよう
画像をアップする
ゲームオーバー画面の画像と、高得点のときのみ表示する画像をアップロードします。
画像サイズは、画面サイズと同じ 横480ピクセル・縦360ピクセルにしておきましょう。
スプライト名は「ゲームオーバー」と変更しておきます。
音を追加する
「音」タブをクリックし、ライブラリから「gong」を追加します。
あと、「わぁー!!」という歓声の音がほしいので、効果音ラボさんの「スタジアムの歓声1」を使わせていただきました。

「ファイルから新しい音をアップロード」をクリックし、効果音ラボさんからダウンロードした音をアップロードしたら、「歓声」とリネームしておきます。
スクリプトを追加する
「スクリプト」タブをクリックします。
ゲーム開始時には非表示にし、「ゲームオーバー」を受け取ったときに表示させます。
スコアが51以上の高得点のときには、「ゲームオーバー」の画像が表示され「gong」の音(約3秒)が鳴り終わったあとに、「高得点」の画像が表示され、「歓声」の音が鳴るようにします。
最終調整をしよう
これでもう完璧かな?と思って、作ったゲームで遊んでみると、思わぬ不具合が見つかることがしばしばあります。
今回のゲームも、「ゲーム終了画面が表示されているのに、車のクラッシュ音が聞こえる」という不具合が見つかりました。
そこで、「自分」のスクリプトに「ゲーム終了を受け取ったとき」「隠す」というスクリプトを追加しました。
これで、ゲーム終了後は「自分」が表示されなくなるので、他の車とぶつかることはなくなり、不要な音が鳴らなくなりました。
ゲーム完成!
やっと完成です。長い間お疲れ様でした!
今回のゲームはScratchのサイトにもアップしていますので、よかったら実際に遊んでみてください。
また、Scratchには「リミックス」という機能があり、アップされているプロジェクトを自分のアカウントにコピーして、自由にどんどんアレンジすることができます。
自由な発想で、どんどんアレンジしてみてください!
コメント