スクラッチでもぐらたたきゲームの作り方(中級-2)

もぐらたたきゲーム

今回つくるゲーム

難易度2 out of 5 stars

中級−1編に続き、ここでは

  • 表示エリア(座標)を限定する
  • 同時に多くのキャラクターを表示する
  • リスタートを設定する

などを行なっていきます。完成形はこちらですのでまずはプレイしてイメージをつかんでください。

準備

初級・をクリアしていない人はまずこちらの記事を読んで作ってください
もぐらたたきゲームの作り方(初級)
もぐらたたきゲームの作り方(中級ー1)

もしくはこちらからリミックスしてください

おじさんの出てくるエリアを限定する

これまでのゲームだと、下の図のように、おじさんが画面からはみ出たところに出てきてしまったり、スコアとかぶってしまってたりしました。

これはクローンを”どこかの場所へいく”としていたことが原因です。
スクラッチの画面は下図のように、左右(X軸)−240〜240、上下(Y軸)がそれぞれ−180〜180となっています。

今回は下図のように左右(X軸)-211〜211、上下(Y軸)-165〜100の範囲でランダムに出現させるように調整します。

”おじさん1”スプライトのコードで
”クローンされたとき”についていた”どこかの場所へいく”の部分を以下のように書き換えます。

これでおかしな場所におじさんが出てくることはなくなりました。

おじさんを同時に表示する

これまでのゲームでは、おじさんが順番に出てくるため、ゲームとしてはとても簡単でした。ここではゲーム性を高めるために、同時におじさんがどんどん出てくるようにします。

まず、”おじさん1”のスプライトを複製します。
複製するにはスプライトのアイコンを右クリックして複製を選ぶだけです。

すると”おじさん12”というスプライトができたと思いますので名称を”おじさん2”に変更しておいてください。
”コード”、”コスチューム”、”音” のすべてが複製されているのがわかります。


”スタート”ボタンを押してゲームをはじめてみてください。全くの複製なので。二人のおじさんが同タイミングで出てくるのがわかります。これでは微妙なので、出るタイミングと、出てくる感覚を変えておじさんが次々と出てくるようにします。

今回はスタートから3.5秒後から、2.5秒間隔ででてくるようにします。

さらにゲームを難しくするために、出てきてすぐに隠れるおじさんも用意しましょう。先ほどと同様に”おじさん1”を複製して、”おじさん3”をつくります。
このおじさんは5秒後から3秒おきに出現します。そしていままで出てきたときに1秒止まっていたところを0.2秒で隠れてしまう設定にします。

このおじさんを叩いたら15ポイント入る設定にしましょう。”このスプライトが押されたとき”
”スコアを15ずつ変える”に変更するだけです。

最後に、このおじさんは特別、黄金のおじさんにして特別感を出しましょう。
コスチュームタブで色を調整します。
今回は色15、鮮やかさ60、明るさ90に設定しました。

リスタートボタンを作る

ゲームが終わった時に、リスタートボタンを表示させ、繰り返し遊べるようにします。
アイコンの作り方は
もぐらたたきゲームの作り方(中級−1)_スタートボタンを作る
を参考にしてください。


まずは”リスタート”のスプライトを作成します。右下のネコのアイコンから描くを選択します。
スプライトの名前は”リスタート”にしておきましょう。

デザインはスタートボタンを流用しましょう。
”スタート”のコスチュームページにいき、
選択矢印でデザイン全体を選択+のアイコンでコピー
を行います。

つぎに、先ほどつくった”リスタート”スプライトのコスチュームに移動します。
先ほどコピーした+アイコンの右側の⬇️アイコンでペーストします。
そして、テキストツールで文字をリスタートに変更します。

次にコードを書いていきます。リスタートが表示されるのは、ゲームが終了した時です。
ゲームが終了した時に”ゲーム終了”というメッセージが出され、そのメッセージを受け取って”リスタート”を表示させます。

背景のコードの、カウントダウンが終わったところに、”ゲーム終了”のメッセージを送るようにします。
メッセージの作り方は
もぐらたたきゲームの作り方(中級−1)_スタートボタンを作る
を参考にしてください

“ゲーム終了”を受け取った時にリスタートボタンを表示するようにします。
”リスタート”スプライトに以下のようにコードを書いてください。

ゲームをしてみてください。”のこり時間”が0になると、リスタートボタンが表示されるようになりました。しかし、BGMもおじさんも止まっていません。それはさきほどコードを変更した時に
”すべてを止める”の部分を”ゲーム終了を送る”に変更したからです。

”ゲーム終了”を受け取った時に、おじさん1・2・3の動きを止める必要があります。

おじさん1のスプライトに移動して、以下のように、ゲーム終了を受け取ったときに、
”スプライトの他のスクリプトを止める””このクローンを削除する”という指示を追加する。

同じ、指示を”おじさん2”、”おじさん3”にも追加します。
そういうときは”バックパック”を作ります。さきほど作ったスクリプトをバックパックにドラッグ&ドロップします。

次に、おじさん2とおじさん3に移動し、バックパックからスクリプトを取り出します

次に”背景”のコードを変更します。

まずBGMが流れるのをゲームが行われている時だけにします。
が押された時””ゲームスタートを受け取ったとき”に変更し、
”ゲーム終了を送る”の下に”スプライトの他のスクリプトを止める”のブロックを追加します。
これでゲームが行われている時だけBGMが流れるようになります。

さらに、”スコアを0にする””のこり時間を○○にする”の初期設定の部分を
”ゲームスタートを受け取ったとき”の下に移動させます。
そうすることにより、リスタートされた時に、スコアと残り時間がリセットされます。

最後にすごく細かい調整をします。
ゲームが終わってすぐに”リスタート”が出てくるのはすこし唐突感があるので、終了後2秒後に表示させるようにします。

これで中級−2は終了です。

次は”クラウド変数”を使って、ランキングを作ろうと思います。

タイトルとURLをコピーしました