Skip to content

如何旋转物体

旋转物体以面向某个方向

瞬间旋转物体

可以使用角度动作来瞬间旋转物体。该动作需要一个角度值。可以使用以下表达式来计算该值:

  • Object.AngleToObject(object) 以面向一个物体
  • Object.AngleToPosition(x, y) 以面向一个位置

随时间旋转物体

可以使用旋转至位置动作以给定速度旋转物体。其位置参数可以设置为 Object.X()Object.Y() 来朝向一个物体。

也可以使用旋转至角度将对象旋转到给定角度。角度可以是0(左)、90(下)、180(右)、270(上)或任何其他值。

Tween 行为还允许旋转物体。它有加速度形状,可以给旋转更多的感觉。它与静止目标很搭配。

为了跟随移动目标并仍然给予旋转一个平滑的感觉,可以使用lerpAngle(起始角度, 目标角度, 权重)表达式。例如,要跟随一个物体,可以使用带有表达式 lerpAngle(Object.Angle(), Object.AngleToObject(OtherObject), 5 * TimeDelta())角度动作。

注意

TimeDelta表达式可以使旋转速度在任何设备上相同。使用lerpAngle时需要它,因为我们自己评估角度,但对于旋转至位置等询问速度的动作则不需要。

顶部向下移动等行为可以设置自动使物体旋转以面向移动角度。通常是一个旋转复选框。

在圆上移动物体

椭圆运动行为

比较角度

可以像比较其他数字一样比较角度,但我们通常希望将 90° 和 -270° 视为相同的角度。AngleDifference(number, number) 表达式以最短的方式给出两个角度之间的差异。回到前面的例子,AngleDifference(90, -270) 等于 0比较两个数字条件可以与 AngleDifference 结合使用来检查两个角度是否相同。

注意

通常最好通过表达式 abs(AngleDifference(90, -270)) 以及一个侧面是 5 的方式给予一些公差来检查角度是否在 +5° 或 -5° 范围内。

大多数移动行为都有一个直接接受角度和公差的移动角度条件。