【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。
PvPモード
対戦を可能にするには
プレイヤー同士の戦闘を可能にする
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が「オン」になっています。
間違った場合は?
このレッスンではすでに完成したブロックの間に新しいブロックを接続しました。間違った場所に接続してしまった場合は、前後のブロックの順番も確認しながら正しい場所に接続し直しましょう。