リファレンス - ver2系
アイディア集

Position 構造体

更新日 : 2022/08/17
編集者 : Takunology

概要

名前空間 : MinecraftConnection

絶対座標を扱います.

メンバ変数

変数名 説明
X double x 座標
Y double y 座標
Z double z 座標

コンストラクタ

引数 説明
x double x 座標
y double y 座標
z double z 座標

使い方

コンストラクタの引数は x, y, z の3方向に対する座標を設定する必要があります. どれか1方向だけを定義することはできません.

座標を取得してプレイヤーをテレポートさせたり, ブロックを任意の座標へ設置したりなどに使えます.

// 座標を (0, 0, 0) に設定する
Position pos = new Position(0, 0, 0);

// 座標を (-100, 64, 22) に設定する
Position pos2 = new Position(-100, 64, 22);

// プレイヤーの今いる座標を取得して格納する
var commands = new MinecraftCommands("127.0.0.1", 25575, "minecraft");
Position playerPos = commands.GetPlayerData("playerID").Postision;

// 各座標をコンソール出力する
Console.WriteLine($"{playerPos.X}\t{playerPos.Y}\t{playerPos.Z}");

素朴な疑問

Q. なんで int 型にしないの?

マイクラの座標はデータを取得すると double 型で得られるため, 型をあわせています. ちなみにブロックを設置するときは整数でないといけないため, 型変換が必要です.(double 型のほうが Mob がヌルヌル動けるからだと思いますが...)

Q. それぞれの方向は何を表しているの?

x 座標は東西方向, y 座標は高さ方向, z 座標は南北方向を表しています. x 座標はプラス側が東でマイナス側が西です. z 座標はプラス側が南でマイナス側が北です. ちょっとややこしいのですが, ブロックを置くときや, 冒険するときの目安になります.

Q. プレイヤー以外にも使えるの?

座標のデータを持つエンティティであれば使えます. 例えば, モンスターやブロック, アニメーション(パーティクル)にも使えます. data get コマンドを実行してみて, Pos という項目が出てくるかどうかで使えるかどうかを判断できます.