【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。

Minecraftプログラミング レッスン56終了時の設定

ゲーム終了時の設定を関数でまとめるには

ゲームモードを元に戻して整理する

レッスン50と同様に、バトル終了時の設定を関数でまとめましょう。バトル終了時にプレイヤー全員のゲームモードを[クリエイティブ]に指定してから、関数[doEndgame]を使ってまとめます。

関数をまとめ終わったら、ほかのプレイヤーをワールドに招待して闘技場を作るコマンドから試してみましょう。問題なく動作したら、ゲームは完成です。

対戦バトルがスタートすると、参加者全員にアドベンチャーモードが適用される

バトルが終了した際に初期地点に全員をテレポートさせ、クリエイティブモードに戻す

1終了時のゲームモードを変更する

HINT [start]ブロック群の最後に追加する

[チャットコマンド[start]を入力した時]ブロック群の後半は、ゲームオーバーの設定がまとまっています。手順1で追加するブロックは、[溶岩]ブロックを繰り返し発生させるループよりも下に接続しましょう。

2クリエイティブモードに変更する

HINT 全員にクリエイティブモードを適用する

マインクラフトではプレイヤーごとにゲームモードを設定でき、同じワールド内で混在できます。対戦バトルが終わった後は全員をゲームモード[クリエイティブ]に設定したいので、手順2の操作4で[全てのプレーヤー(@a)]を指定します。

3新しい関数を作成する

HINT 終了時の設定を関数にまとめる

このレッスンではゲームオーバーの設定を関数[doEndgame]としてまとめます。プログラム全体ではゲームの初期設定を行う関数[doGameSetting]、ゲームの中核となる繰り返し処理、ゲーム終了後の設定を整える[doEndgame]の3つで構成されていることを覚えておきましょう。

4終了時のブロックをまとめる

5関数を呼び出すブロックを接続する

HINT 関数にまとめる範囲に気を付けよう

関数[doEndgame]には[ゲームルール[PvP]を[偽]にする]を含めないことに注意しましょう。PvPの設定は対戦バトル全体に影響を与えますが、ほかのブロックと同様に[真]にする設定を[doGameSetting]に、[偽]にする[doEndgame]に分けて格納してしまうと、どのタイミングでPvPの設定が変わるのか分かりにくくなります。

ここではメインループの[もし[[gameover]ではない]ならくりかえし]の上下に接続して、[真]の後にメインループが開始し、終了したら[偽]に変わることを確認しやすくしています。

間違った場合は?


終了時の設定を関数にまとめたら、忘れずに[関数を呼び出す]ブロックを接続しておきましょう。[関数を呼び出す[doEndgame]]は[チャットコマンド[start]を入力した時]ブロック群の一番下に接続します。

HINT ブロックの配置を最終確認しよう

プログラムが完成したら、ブロックの配置を手順5でもう一度確認します。条件分岐や繰り返しに指定している条件や、変数の数値などに間違いがないか1つずつ確認しましょう。

テクニック 対戦バトルのルールを確認しよう

対戦バトルに参加するプレイヤーをワールドに集め、チャットコマンド[field][start]を実行してゲームを開始しましょう。

プレイヤーが死亡した場合と、生き延びて夕方になった場合の両方を試して、ゲームオーバーまで問題なく動作するか確認します。ほかの参加者もルールを覚えたら、全員で遊んでみましょう。