マイクラpeの空間はx,y,zで出来ている。
0.14.0現在、PEの仕様上太陽は北から登ってくるので、
ここでは太陽の登ってくる方角(zが減る方向)を北として説明します。
xが増える方向は東
減る方向は西
yが増える方向は上
減る方向は下
zが増える方向は南
減る方向は北
を表している。
ブロックの置ける範囲は、水平軸のxとzは無限だが、高さ軸のyは0以上127以下までになる。
一つのブロックは1辺1mの四角い空間を持つ。
その四角い空間の基準となる点がある。
useItem(x,y,z) で得られる座標はこの基準点。
基準点は整数の値で表される。
小数点以下の値を持つ座標を指定した場合、その座標にあるブロックの基準点は負の無限大への丸め( Math.floor() )をされた値となる。
例えば、(1.2, 0.2, -0.3)の座標を指定した場合、その座標にあるブロックの基準点は(1, 0, -1)となる。
基準点(a,b,c)のブロックが持つ空間は、 a<=x<a+1、b<=y<b+1、c<=z<c+1となる。
var yaw = Entity.getYaw(EntityUUID);yawはエンティティの向いてる方角を表している。
反時計回りで無限に増加、時計回りで無限に減少する。
例えば80°から時計回りに三回転すると、 -360x3+80=-1000 になる。
yaw/360 すれば、どっち回りに何回転したかが判る。
プレイ中は無限に増加、減少するけど、ゲーム開始時には -360<yaw<360 を向いている。
方角が知りたいだけなら、このままでは扱いにくいので、
yaw=((yaw%360)+360)%360;でyawを0以上360未満に丸める。
するとyawは↓のような関係になる。
南(z+方向):0° 西(x-方向):90° 北(z-方向):180° 東(x+方向):270° | ![]() |
フック関数 useItem 、destroyBlock 、startDestroyBlock、continueDestroyBlock、projectileHitBlockHookの引数や、
Player.getPointedBlockSideで得られるSideは、叩いた側面が向いている方向を表している。
Sideはブロックランチャ―に組み込まれた定数BlockFaceに対応している。
Player.getPointedBlockSideで得られるSideは、叩いた側面が向いている方向を表している。
Sideはブロックランチャ―に組み込まれた定数BlockFaceに対応している。
タグ
このページへのコメント
誤字ってる上にPC情報でしたね、情報ありがとうございます。
現在のver0.14.1の仕様に合わせ 127 に修正しました。
265→255(今のPEは127かな。127で。)