朝向

发表时间: 2025-11-14 14:18:25

最后更新: 2025-11-14 14:18:25(4小时前)

本文标签: 实体机制

用户头像-Connie 等1名 热心馆友编辑完成

朝向是我的世界的一种游戏内容

介绍

  1. 在《我的世界》中,朝向(又称为方向或视角方向)指的是实体所指向的特定方向。

  2. 朝向的定义包括Y轴的旋转角度(偏航角)以及X轴的旋转角度(俯仰角),其中“X轴”和“Y轴”是指围绕这些特定轴进行的旋转。

  3. 实体的身体和头部方向都会受到朝向的影响,尤其对于有头部的生物而言。

  4. 对于一些没有头部的实体,它们有时能够在X轴上进行360度的旋转。

  5. 此外,朝向也会对生物玩家的视野产生限制,其他实体例如只和物品展示框也拥有自己的朝向。

表示方法

  1. 朝向以“度”为单位,用2个浮点值表示。
  2. Y轴旋转角(偏航角):-180°为正北,-90°为正南,0°为正北,+90°为正西,+180°则回到正北。
  3. X轴旋转角(俯仰角):平是0°,向下看是正值,向上看是负值。不会超过正负90°。

调试屏幕

  1. 使用F3 + B,所有实体的朝向会以蓝色光束的方式显示。
  2. 玩家自身的朝向在调试屏幕的player_position下的Facing项目中:第一个是基本方位,后面第一个括号内是朝向的轴,第二个括号内的两个数字分别为Y轴旋转角(偏航角)和X轴旋转角(俯仰角),精确到小数点后一位。

Y轴旋转角(偏航角)与方位

  1. Y轴旋转角(偏航角)改变会改变面向的方向和运动的方向。
  2. 可以在调试屏幕[仅Java版]中查看玩家此处的Y轴旋转角(偏航角)。
  3. 下表列出了基本方位和轴与Y轴旋转角度数(偏航角)、从+X方向开始的逆时针方向角度数的关系。
  4. 它们的取值范围是[−180∘,180∘)。
基本方位、朝向的轴与Y轴旋转角(偏航角)度数、从+X方向开始的逆时针方向角度数的关系
基本方位 朝向的轴 Y轴旋转角(偏航角)度数范围
(Minecraft中的偏航角)
从+X方向开始的逆时针方向角度数范围
(现实中的绝对偏航角)
Z轴负方向 135.0°到180.0°[2],
-180.0°到-135.1°
45.1°到135.0°
X轴正方向 -135.0°到-45.1° -44.9°到45.0°
Z轴正方向 -45.0°到44.9° -134.9°到-45°
西 X轴负方向 45.0°到134.9° 135.1°到180.0°,
-180.0°到-135.0°
Y轴旋转角(偏航角)与点方向的对应关系
点钟方向 Y轴旋转角(偏航角)度数
(Minecraft中的偏航角)
从+X方向开始的逆时针方向角度数
(现实中的绝对偏航角)
1点钟方向 -150.0° 60.0°
2点钟方向 -120.0° 30.0°
3点钟方向 -90.0° 0.0°
4点钟方向 -60.0° -30.0°
5点钟方向 -30.0° -60.0°
6点钟方向 -0.0° -90.0°
7点钟方向 30.0° -120.0°
8点钟方向 60.0° -150.0°
9点钟方向 90.0° 180.0°
10点钟方向 120.0° 150.0°
11点钟方向 150.0° 120.0°
12点方向 180.0° 90.0°

有效角度范围

  1. 在Minecraft以及现实世界中,朝向的角度通常限制在范围[−180°, 180°)之内。
  2. 一旦角度超出这个范围,就需要通过取余的方式使其回归有效角度。
  3. 模运算是一种有效的取余方法。
  4. 举个例子,当计算得出-190°时,根据−190≡170(mod360)这一关系,我们可以得出最终结果为170°。
  5. 在编程中,常常会使用类似于a % n或mod(a, n)的运算符进行模运算。
  6. 然而,当参与计算的数中仅有一个为负数时,这种取模运算的效果就可能不如预期,因此各编程语言对其处理的方式各有不同。
  7. 在此例中,n=360,因此在进行模运算之前,必须将被除数a转换为一个正数。

实体移动

  1. 实体的移动受到朝向的影响,实体移动的方向主要受实体的朝向影响,例如在玩家使用鞘翅时,玩家的朝向很大程度上决定了接下来的运动轨迹和接触方块后所受的伤害

放置方块

  1. 视角会影响某些方块的放置方向,例如玩家放置的楼梯告示牌等的朝向取决于玩家的朝向,这些物品的朝向则会影响使用。

目标选择

  1. 在Minecraft中,可以通过指定的角度范围对玩家的方向进行检测,范围由两个数值定义,例如43到47。

  2. 使用以下命令,可以在所有Y轴旋转角度在43°到47°之间的玩家的动作栏中显示提示:“您的Y轴旋转角度数(偏航角)在43度到47度间。”: /title @a[y_rotation=43..47] actionbar {"text":"您的Y轴旋转角度数(偏航角)在43度到47度间。"}

  3. 同样,针对X轴的旋转角度,若该角度在43°到47°之间,则可在动作为栏显示相应信息:“您的X轴旋转角度数(俯仰角)在43度到47度间。”命令为: /title @a[x_rotation=43..47] actionbar {"text":"您的X轴旋转角度数(俯仰角)在43度到47度间。"}

  4. 另外,以下四条命令能够检测玩家的朝向,并通过聊天框输出当前方向,具体命令包括: /execute if entity @p[y_rotation=135..-135] run say North,/execute if entity @p[y_rotation=-135..-45] run say East,/execute if entity @p[y_rotation=-45..45] run say South,/execute if entity @p[y_rotation=45..135] run say West。

  5. 目标选择条件允许根据实体的特定视角来筛选实体:

y_rotation Y轴旋转角(偏航角)
x_rotation X轴旋转角(俯仰角)
 

数据值

  1. 所有实体都有名为Rotation的数据,用来储存实体的朝向

设置视角

  1. 可以使用命令/teleport或/rotate[仅Java版]设置实体的视角。
  2. 拥有生物AI的实体在传送后依然会自由移动,但其移动将从固定视角开始。
  3. 在Java版中,除了玩家外的所有实体均可以通过命令/data修改其Rotation数据来设置视角。

视角坐标

  1. 插入符号^允许根据实体的旋转角度来确定位置坐标。
📑
🤔
⬆️