「30分で作ろう」シリーズ(5) 太陽ゲーム

4. 惑星を増やして完成させよう

タップした位置に月を落とし、月と月が衝突したら水星に進化するところまで完成しました。他の惑星も追加して、ゲームの完成を目指しましょう。
月に作ったプログラムを利用して以下の順番で進めます。
・次に出現する惑星を設定する
・水星と火星を落とす
・衝突位置を特定するプログラムを月以外の惑星に作成する
・惑星が進化するプログラムを月以外の惑星に作成する

次に落とす惑星を設定する

落下する惑星は、月、水星、火星の3つです。
すでに「開始位置」オブジェクトにゲーム開始直後に月を表示するプログラムを作成しました。

このプログラムでは月が出現するのみなので、他の惑星を出現させるプログラムを作ります。以下のようなプログラムとします。
・月、水星、火星がランダムに出現する
・出現する位置は、指示線と限度線が交差する地点とする
以下のようなプログラムを「開始位置」オブジェクトに作ります。

順番に作っていきましょう。始めに、「惑星を手持ちに設置」というマクロ命令を作ります。「マクロ」カテゴリ―の「マクロ [マクロ名]」ブロックを選択し、マクロ名に「惑星を手持ちに設置」と入力します。

惑星がランダムに現れるようにするには、月に0、水星に1、火星に2という数字を割当て、番号がランダムに現れるようにします。

「[~]の値を[~]にする」ブロックは、「X/Y」カテゴリにあります。
「乱数[~]から[~](整数)にする」は「演算カテゴリにあります。

惑星番号が0なら月の分身を作成します。

同様に、惑星番号が1なら水星の分身、惑星番号が2なら火星の分身を作成します。(「月-」「水星-」「火星-」ではなく、「月」「水星」「火星」の分身であることに注意してください。)
分身が作成される位置のX座標は指示線のX座標(クリックした位置)です。Y座標、Z座標は「開始位置」オブジェクトと同じ(距離0)です。

「月」の分身を作るプログラムができたらコピーし、必要な選択肢を変更すると効率的です。コピーしたいブロック(この場合は、緑色の部分)を長押ししてコピー、空白のエリアで長押ししてペーストします。

水星と火星を落とす

すでに「開始位置」オブジェクトに次のようなプログラムを作成しました。

月の他に水星と火星が追加されたので、以下のようなプログラムに変更します。

惑星番号=0(月が出現)の場合は、「月-」の分身を作成します。


同様に、惑星番号=1(水星が出現)の場合は、「水星-」の分身を作成します。
惑星番号=2(火星が出現)の場合は、「火星-」の分身を作成します。
「もし~なら実行する」は「iF」カテゴリにあります。
「[惑星番号]=[0]」は、「演算」カテゴリにあります。
「[月-]の分身を作る [開始位置]から見て X[要素1] Y[0] Z[0]に」ブロック、「[月]の分身を全て削除」ブロックは、「テクニック」カテゴリにあります。

2つのマクロ命令が完成したら、「開始位置」オブジェクトにある以下のプログラムを変更します。

プログラムの最後に「惑星を手持ちに設置」ブロックを追加します。

画面をタップしたら、「バウンド」音が鳴り、惑星が落下し、次の惑星が設置されるようになります。

衝突位置を特定するプログラムを他の惑星に作成する

第3章で、「月-」オブジェクトに、以下のプログラムを作成しました。

同様のプログラムを、「水星-」「火星-」「金星-」「地球-」「土星-」「太陽-」オブジェクトにも作ります。「月-」オブジェクトに作ったプログラムをコピーして、必要な箇所を変更すると効率的です。
プログラムをコピーする方法は2つあります。

<プログラムを長押し>

(1) コピーしたいプログラムを長押しします。全体をコピーしたい場合は、一番上のブロックを長押しします。途中からコピーしたい場合は、その箇所を長押します。
(2) Copy と表示されます。
(3) 空いている場所で長押します。

<オブジェクトリストにドラッグ&ドロップ>

(1) コピーしたいプログラムを長押しします。
(2) オブジェクトリストにあるコピー先のオブジェクトにドラッグ&ドロップします。
上記いずれかの方法で、「月-」のプログラムを「水星-」コピーし、必要な箇所を変更します。ここでは、「オブジェクトリストにドラッグ&ドロップ」の方がやりやすいでしょう。同様に、その他の惑星でも繰り返します。

<水星->

<火星->

<金星->

<地球->

<土星->

<木星->

<太陽>

惑星が進化するプログラムを他の惑星に作成する

惑星が合体して次の惑星が作られるプログラムを作りましょう。すでに、「合体」オブジェクトに、月が合体して水星になるプログラムを作成しました。

これをもとに、月→水星→火星→金星→地球→土星→木星→太陽の順に合成されていくプログラムを追加します。コピーして必要な箇所を変更すると効率的です。サウンドやエフェクトは自分の好みに合わせて変更することができます。
プログラム全体は以下のようになっています。

各部は以下のようになっています。

以上で完成です!遊んでみましょう!

5. 発展課題

発展課題に挑戦してみましょう。

(Q1)ゲームオーバーを作る

現在のゲームは、惑星が積み重なり、限度線からあふれてもゲームを続けることができます。惑星が“限度線“からはみ出したらゲームオーバーとなる制限を作ってみましょう。

(Q2)経過時間とポイント加算を作る

スタートしてからの時間を計測したり、惑星が合成されたらポイントが加算される仕組みを追加して、ゲームらしくしてみましょう。