車に動きをつけよう
道がないと下の段に落ちる
車が走っていて道が途切れたところで、下の段に落ちるようにします。
車が上段にいるときのy座標は130で、中段のときのy座標は10、海にいるときのy座標は-140です。
「y座標=130」で道の色に触れていないとき、「y座標を-10ずつ変える」を12回繰り返して、y座標10まで降ります。
同様に、「y座標=10」で道の色に触れていないとき、「y座標を-10ずつ変える」を15回繰り返して、y座標-140まで降ります。
ジャンプして上の段に登れる
スペース キーを押すと、上の段にジャンプできるようにします。
「y座標=10」で スペース キーが押されたとき、「y座標を10ずつ変える」を12回繰り返して、y座標130まで上ります。
同様に、「y座標=-140」で スペース キーが押されたとき、「y座標を10ずつ変える」を15回繰り返して、y座標10まで上ります。
海に落ちるとスピードが遅くなる
車が海の中にいる間は、スピードが遅くなるようにします。
山と海の境い目が、だいたい y座標-100くらいなので、y座標が-100より少なくなったらスピードを4遅くして、また海から出たらスピードを戻すようにします。
岩にぶつかると点滅する
車が岩にぶつかったとき、チカチカと点滅させます。
イベントの「○○を送る」ブロックに、新しいメッセージ「ぶつかった」を登録します。
「中段の岩」と「上段の岩」のスクリプトに、「ぶつかったを送る」を入れます。
「車」のスクリプトを追加します。
「ぶつかった」を受け取ったとき、0.2秒ごとに「隠す」と「表示する」を交互に行うことで、チカチカと点滅して見えます。
さて、ここまでの動きを見てみましょう。
完成まで、あとちょっとです!
音をつけよう
いろいろな効果音をつけていきましょう。
オープニングに音をつける
ゲームが始まる前に、車が「3、2、1、スタート!」と言うのと同時に、「ピ、ピ、ピ、ポーン!」という音を鳴らします。
「ステージ」にスクリプトを書いていきます。
「57の音符」というのは、ラの音です。「69の音符」は、高いラの音です。
テンポが60BPMの場合、1拍で1秒になるので、0.75拍鳴らして0.25拍休むと、1秒になります。
これを3回繰り返し、最後に高いラの音を1秒鳴らすと、時報の「ピ、ピ、ピ、ポーン!」という音になります。
ゲームのBGMを鳴らす
ゲーム中ずっと流れるBGMを設定します。
「ステージ」の音タブをクリックし、「音をライブラリから選択」ボタンを押し、「dance around」を選択します。
スクリプトタブに切り替え、スクリプトを書きます。
音量を50%におさえて、ずっと鳴らし続けます。
効果音をつける
車が落ちるときの効果音
車が道から落ちる時に効果音を鳴らします。
「車」のスプライトの音タブをクリックし、落ちる音をアップロードして登録します。
スクリプトタブに切り替え、すでに作ったスクリプトに「落ちるの音を鳴らす」ブロックを追加します。
車がジャンプするときの効果音
車がジャンプする時に効果音を鳴らします。
落ちる音と同じように、ジャンプの音をアップロードして登録し、すでに作ったスクリプトに、「ジャンプの音を鳴らす」ブロックを追加します。
果物をとったときの効果音
車が果物をとった時に、効果音を鳴らします。
「りんご」の音タブをクリックし、「音をライブラリから選択」ボタンを押して「water drop」を選択します。
スクリプトタブに切り替え、すでに作ったスクリプトに、音量を70%におさえて、「water dropの音を鳴らす」ブロックを追加します。
「バナナ」「みかん」「さくらんぼ」のスクリプトにも同様に、ブロックを追加します。
岩にぶつかったときの効果音
車が岩にぶつかったとき、効果音を鳴らします。
「中段の岩」のスプライトの音タブをクリックし、ブザー音をアップロードして登録します。
スクリプトタブに切り替え、すでに作ったスクリプトに「ブーの音を鳴らす」ブロックを追加します。
「上段の岩」のスクリプトにも同様に、ブロックを追加します。
海に潜ったときの効果音
車が海の中にいるあいだ、ブクブクブク…という効果音を鳴らします。
「海」のスプライトの音タブをクリックし、ぶくぶく音をアップロードして登録します。
スクリプトタブに切り替え、すでに作ったスクリプトに「ずっと」「もし車に触れたなら」「終わるまでぶくぶくの音を鳴らす」ブロックを追加します。
ゲーム終了画面を設定しよう
制限時間(40秒)内のスコアによって、ゲーム終了画面(3パターン)が変わるようにします。
タイマーをセットする
ゲーム開始から40秒たったら、ゲームを終了するようにします。
ステージのすでに作ったスクリプトに「タイマーをリセット」「タイマー>40まで待つ」「ゲーム終了を送る」ブロックを追加します。
ゲーム終了画面のスプライトを作る
画像をアップロードする
スプライトリストのアップロードボタンをクリックし、高得点のときのゲーム終了画面の画像をアップロードします。
続いて、コスチュームタブをクリックし、中得点のときの画像と、低得点のときの画像をそれぞれアップロードします。
音を登録する
音タブに切り替え、ファンファーレの音、歓声の音、がんばりましょうの音をアップロードします。
スクリプトを書く
スクリプトタブに切り替え、スクリプトを書いていきます。
ゲーム終了画面は、ゲームが終了するまでは表示させないので、「がクリックされたとき」に「隠す」にしておきます。
そして、「ゲーム終了を受け取ったとき」に1番上の層(前面)に出したいので、「前に出す」を入れます。
7点以上だったら高得点、6〜3点だったら中得点、2点以下だったら低得点としたいため、下記のようなスクリプトになります。
音を鳴らす前に「すべての音を止める」を入れているのは、他の効果音などが鳴っている場合は、いったん全て止めてから、音を鳴らすようにするためです。
最後に「すべてを止める」を入れて、すべてのスプライトのすべてのスクリプトを、完全に止めます。
最終調整をしよう
これでもう完璧かな?と思って、作ったゲームで遊んでみると、思わぬ不具合が見つかることがしばしばあります。
今回のゲームも、「タイムアップ直前に海に入ってしまうと、ゲーム終了画面が表示されているのにブクブクブク…という音が流れ続けてしまう」という不具合が見つかりました。
そこで、車のスクリプトに「ゲーム終了を受け取ったとき」「隠す」というスクリプトを追加しました。
これで、ゲーム終了後は車が表示されなくなるので、車と海が触れることはなくなり、不要な音が鳴らなくなりました。
ゲーム完成!
やっと完成です。長い間お疲れ様でした!
今回のゲームはScratchのサイトにもアップしていますので、よかったら実際に遊んでみてください。
また、Scratchには「リミックス」という機能があり、アップされているプロジェクトを自分のアカウントにコピーして、自由にどんどんアレンジすることができます。
自由な発想で、どんどんアレンジしてみてください!


コメント