如何旋转物体
旋转物体以面向某个方向
瞬间旋转物体
可以使用角度动作来瞬间旋转物体。该动作需要一个角度值。可以使用以下表达式来计算该值:
- 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° 范围内。
大多数移动行为都有一个直接接受角度和公差的移动角度条件。