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

Minecraftプログラミング レッスン55PvPモード

対戦を可能にするには

プレイヤー同士の戦闘を可能にする

MakeCodeが実行されているワールドに参加したプレイヤーは、レッスン46で設定したスポーン地点に現れます。対戦バトルの参加者が全員そろったら、プレイヤーと同じように闘技場の上にテレポートさせます。さらに、ゲームが終了したらプレイヤー同士が戦えないように設定します。

対戦ゲームに参加するプレイヤーをワールドに招待しておく

闘技場の上にテレポートしたら、溶岩を避けながら対戦する

1ブロックを選択する

HINT 全プレイヤーを闘技場にテレポートさせる

レッスン47では[プレイヤー]カテゴリーの[現在の位置から[~[0]~[0]~[0]]にテレポートする]ブロックでプレイヤー自身がテレポートしましたが、手順1で選択するブロックはほかのプレイヤーやエンティティをテレポートする役割があります。

2全員を自分の座標にテレポートさせる

HINT スタート時にワールドにいる全員が自分の座標に集まる

対戦バトルの開始時にはすべてのプレイヤーが同じ座標に集まるため、三人称視点で見ると全員が重なって見えます。それぞれの頭上に表示されたゲーマータグを参照して、自分のキャラクターを操作しましょう。

HINT 友達に検証を手伝ってもらおう

このレッスンで作成するプログラムは一人でプレイする場合、テレポートの結果が分かりにくくなっています。スマートフォンやタブレットでマインクラフトを楽しんでいるユーザーがいたらワールドに参加してもらい、コードの検証を手伝ってもらいましょう。

3テレポート用のブロックを選ぶ

4ゲーム終了時のテレポートを設定する

HINT ゲームが終わったら初期地点にテレポートする

ゲームオーバーになったら、すべてのプレイヤーを闘技場の下にテレポートさせましょう。[次の対象[いちばん近いプレーヤー(@p)ターゲットを[~[0]~[0]~[0]]にテレポートさせる]ブロックを使うと、すべてのプレイヤーを指定した座標にテレポートさせられます。ここでは変数[x][y][z]を指定して、初期スポーン地点にテレポートさせます。

間違った場合は?


手順4の操作3で[ワールド[0][0][0]]ブロックを使っていることに注意しましょう。手順3で選択したブロックには相対座標が組み込まれているため、そのまま使うと正しい場所にテレポートしません。全員生き埋めになってしまう可能性もあるので、必ずワールド座標を設定しておきましょう。

HINT プレイヤー以外もテレポートさせられる

[次の対象[いちばん近いプレーヤー(@p)ターゲットを[~[0]~[0]~[0]]にテレポートさせる]ブロックは、プレイヤー以外にもエンティティを指定した座標にテレポートできます。

また、[生き物]カテゴリーの[動物]ブロックや[モンスター]ブロックを組み込むと、任意の動物やモンスターをプレイヤーのところに送れます。面白いブログラムが作れるので試してみましょう。

5開始時の対戦設定を追加する

6終了時の対戦設定を追加する

HINT PvPとは

PvPとは「Player vs Player」の略で、プレイヤー同士が戦えるかどうかを決める設定です。マインクラフトではゲームの設定の[味方へのダメージ]または手順5のようなプログラムで変更できます。このプログラムでは闘技場で対戦バトルを行う間だけPvPを「真」に、それ以外では「偽」にしてプレイヤー同士の対戦を制限します。なお、ワールド作成時の初期設定では、PvPが「オン」になっています。

間違った場合は?


このレッスンではすでに完成したブロックの間に新しいブロックを接続しました。間違った場所に接続してしまった場合は、前後のブロックの順番も確認しながら正しい場所に接続し直しましょう。