デジタル関連

【Minecraftプログラミング】ブロックの座標を変数にするには

投稿日:

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

Minecraftプログラミング レッスン46ワールド座標でブロックを並べる

ブロックの座標を変数にするには

計算ブロックと変数を組み合わせる

このレッスンでは[ブロックを並べる]ブロックや[文字を描く]ブロックで指定している座標を変数に置き換えます。

プレイヤーからの相対座標ではなくワールド座標と変数を組み合わせることで、プログラムの実行中にプレイヤーが移動しても闘技場や文字が作成される位置が変わらないようにします。

二重、三重に入れ子になったブロックをいくつも使うので、ブロック群を複製して効率良く作業しましょう。

1ワールドのブロックを組み込む



HINT
ワールド座標と変数を組み合わせる

[ブロックを並べる]ブロックのように座標を指定して使うブロックは、プレイヤーからの相対座標を入力するようになっています。このレッスンではプレイヤーの初期位置を格納した変数[x][y][z]を[ワールド[0][0][0]]ブロックに組み込んで、相対座標と同じ位置関係になるように設定します。

間違った場合は?


[ワールド[0][0][0]]のブロックを組み込むのを忘れても、手順通りに進められます。ただし、プログラムを実行しても正しい処理が行われません。相対座標とワールド座標の切り替えは見落としがちな部分なので、十分に注意しましょう。

2計算ブロックと変数ブロックを組み込む





HINT
座標の要素ごとに変数を指定する

手順2では絶対座標の変数を使って、相対座標の指定が絶対座標になるように置き換えています。ブロックを並べる範囲の始まりと終わり、それぞれの「x」「y」「z」の座標すべてを置き換える必要があるので慎重に作業しましょう。

間違った場合は?


計算ブロックの中で指定する「変数」「算術記号」「数値」の1つでも間違えるとプログラムが正しく動作しません。相対座標のときの数値[-21][-1][-21]を元に正しく入力しましょう。間違った場合は、修正したい部分をクリックして変更します。


3ほかのブロックも置き換える




HINT
ブロックを複製して作ろう

各座標のブロックは3つのブロックが入れ子になっているため、1つずつ作業すると手間がかかります。最初に作成したブロックの[ワールド]の辺りを右クリックしてブロックの固まりを複製し、ほかの座標に組み込んでから算術記号や数値を変更すると効率良く作業を進められます。


HINT
文字を描くブロックの座標も置き換える

文字を描くブロックの座標も忘れずにワールド座標に変更しましょう。相対座標が設定されたままだと、プレイヤーが移動したときに文字が描画される場所が変わってしまうので注意しましょう。

4プレイヤーの初期位置を変更する



HINT
スポーン地点をコマンドで指定する

[setworldspawn~ ~ ~]のコマンドを使うと、プレイヤーが死亡したときに復活するスポーン地点を変更できます。ここでは闘技場を作るコマンド「field」を実行したときに、プレイヤーのスポーン地点を現在の座標に設定するようにしています。対戦バトルの途中でプレイヤーが死亡した場合は、闘技場の下の[海のランタン]の中央に復活します。

間違った場合は?


マインクラフトのコマンドは、スペルを1文字でも間違ってしまうと実行されません。手順4で入力するコマンドは「set」「world」「spawn」「~ ~ ~」をスペースなしでつなげたものなので、意味のある区切りのスペルを確認しながら入力しましょう。

テクニック
コマンドを確認してみよう

マインクラフトには、MakeCodeがなくても実行できるさまざまなコマンドが用意されています。MakeCodeにはそのコマンドを直接実行できるブロックが用意されており、プログラミングの自由度を高めています。

マインクラフトに用意されているコマンドは、ワールドを表示して入力モードが[半角英数]の状態で[/]キーを押すと一覧で表示されます。

中には、MakeCodeで表示されないブロックを与えられる「give」のほか、海底神殿や要塞などを検索する「locate」など強力なコマンドがあります。


Source: できるネット
【Minecraftプログラミング】ブロックの座標を変数にするには

-デジタル関連

Translate »

Copyright© ぽーたりーふ , 2019 All Rights Reserved Powered by STINGER.