準備編 スクラッチ × マインクラフト プログラミング 0回目

マインクラフト プログラミング するための準備です。
変数というものを指定します。

スポンサーリンク

基本の変数

まずは変数というものを作ります。
変数と聞くとそこですでにあきらめてしまう方もいると思いますがここでやる変数はわりと簡単です。
基本の変数を作らないとブロックの指定や座標の指定ができないので、ブロック指定用の変数と座標指定用の変数を作成します。
変数には大文字小文字の区別があるので注意してください。

そもそも変数ってなに?

簡単に言うと入れ物です。
マインクラフトでは主に数値の入れ物です。
指定した数値を記憶してくれる便利な入れ物です。
出し入れ自由、変更も自由です。

ブロック指定用の変数

マインクラフトのブロック(アイテム)データは2種類で管理されています。
ということでますは2種類の変数を作ります。
スクラッチの変数のところから新しい変数を作る、すべてのスプライト用として名前を
blockTypeId と
blockData として
2種類作りましょう。

各ブロックのデータはマインクラフト内でF3+Hを押すと表示される詳細データを見ると表示されます。
(#0xxx)や(#0xxx/xx)の部分が(#blockTypeId/blockData)となります。
すべてのデータが使用可能というわけではありません。
後々一部だけ解説いたします。
一覧は下記のどちらかが見やすいと思います。
https://minecraft-ja.gamepedia.com/Java_Editionのデータ値/ブロックID
https://minecraft-el.gamepedia.com/Data_values

blockTypeIdは大まかな種類のことです。
例えば
石の種類は1
木材の種類は5
羊毛は35
シーランタンは169
コンクリートは251
というような感じです。

blockDataはblockTypeIdをさらに細かく指定します。
blockTypeIdで1を指定すると石になるのですが一番最初、blockDataは0として設定されています。
blockDataの値を変更すると石の種類が変わります。
blockDataの0は石、1は花崗岩、2は磨かれた花崗岩、3は閃緑岩となります。

マインクラフト内でアイテムの詳細データを確認すると
石は(#0001/0)
花崗岩は(#0001/1)
閃緑岩は(#0001/3)
となっているのが確認できます。
blockDataは単純に種類を指定するだけではなく状態や方向を指定する場合もあります。

座標指定用の変数

次は座標指定用の変数です。
mcpiX
mcpiY
mcpiZ
の3種類です。

それぞれX座標、Y座標、Z座標になります。
座標に関する注意点としては
マインクラフトの実際の座標とスクラッチで指定する座標にはズレがあるということです。
原因はマインクラフトの初期スポーン地点の座標です。
初期スポーン地点の座標が100.70.50だった場合
スクラッチではその座標が0.0.0になります。
建造物を自動で建てる場合、座標指定する際いちいち計算が必要になる可能性があります。
一番楽な対策としてはワールドをフラットで生成し
/setworldspawnコマンドで初期スポーン地点を変更することです。
0.0.0に設定すると地中に埋まるので0.4.0ならフラットの初期設定でも地表になるはずです。
/setworldspawn 0 4 0 で設定できます。

以上の5種類の変数を作成したら準備完了です。
これで好きな場所に好きなブロックを設置することができるようになりました。

次は実際にスクラッチを使ってプログラムを組んでみましょう。

コメント