【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。
ゲームオーバーを設定する
ゲームオーバーの設定を作るには
変数を使って条件分岐を作る
対戦バトルがゲームオーバーになる条件として、まずはプレイヤーが死亡したときを設定します。プレイヤーが生き延びた場合も、ほどよいタイミングで対戦バトルが終わるように夕方になったらゲームが終了するようにプログラミングします。変数[gameover]を作成して、それぞれの条件を作りましょう。
「start」コマンドで闘技場にテレポートしたら、隅に移動しておく
夕方になったらゲームが終了するように設定する
1新しい変数を作る
HINT 変数[gameover]の内容を確認しよう
変数[gameover]はプレイヤーが死亡したときと、ワールドの時間が夕方になったときに「真」になるように設定します。ゲーム内で繰り返し処理となっている[溶岩]の滝に関しては、次のレッスンで消去します。
2プレイヤーが死んだときの設定をする
HINT さまざまなタイミングで処理を実行できる
[プレイヤー]カテゴリーにはさまざまなタイミングでプログラムが実行できるブロックが用意されています。[プレイヤーが死んだ時]ブロックもそうしたブロックの1つで、プレイヤーが死亡したときに接続されたブロックが実行されます。ゲームモードが[クリエイティブ]の場合は実行されないので注意しましょう。
3ゲームオーバーを設定する
HINT ほかのプレイヤーが死亡してもゲームオーバーにならない
MakeCodeには、ほかのプレイヤーの状況を知るためのブロックが用意されていません。このため、MakeCodeを実行しているワールドのプレイヤーが死亡したときのみ、終了する条件として設定できます。
ほかのプレイヤーが全滅しても対戦バトルは終了せず、MakeCodeを実行しているプレイヤーが死亡した場合は、ほかのプレイヤーが全員生き残っていても終了します。
HINT 変数で「フラグ」を作る
変数[gameover]は数値を設定するのではなく、ゲームオーバーの条件を満たすかどうかを表すために使います。このため[論理]カテゴリーの[真]のブロックを組み込み、プレイヤーが死亡したときにゲームが終了するという条件を作っています。変数のこのような使い方を「フラグ」といいます。
4条件の準備をする
間違った場合は?
条件分岐のブロックを[もし[真]ならくりかえし]の外側に接続してしまうと、ゲームは終了しません。手順4の操作3をよく確認して、接続する位置を間違えないようにしましょう。
なお、複雑な入れ子になっているブロックが表示されているとき、[元に戻す]ボタンをクリックすると、画面の表示が崩れる場合があります。間違えてしまった場合は手作業で慎重に修正しましょう。
5ゲーム時間のブロックを組み込む
HINT ゲーム時間とは
[ゲーム時間]にはワールドが作られてからの経過時間がティック数で記録されています。ワールドが[常に昼間]に設定されている場合は変化しません。
6時間を設定する
HINT 上の[日中]を選択する
[次の時間を確認する]ブロックには「日中」が2つあります。上の「日中」(DayTime)はワールドの現在時刻を示す値で、「夜明け」(0)からのティック数が設定されます。下の「日中」(Day)はワールドを作ってからの経過日数が設定されています。
HINT 正しい比較演算子を選ぼう
手順6で設定する条件は、操作4で選択する比較演算子によってまったく結果が異なってしまうので気を付けてください。ここではゲーム内の時刻が「夕暮れ(12000ティック)」よりも大きくなったときに変数[gameover]を「真」にするため「>」を選びます。「=」を選ぶと12000ティックに達した一瞬だけしかプログラムが実行されないので注意しましょう。
7ゲームオーバーを設定する
HINT ゲームオーバー後には何も起こらない
このレッスンではゲームーオーバーの条件のみを設定しました。ゲームオーバーのときに何が起こるかについては、レッスン53以降で設定していきます。