0

只是寻找一些关于如何实施以下内容的建议/帮助:

我有一条使用航路点设置的路径,当敌人到达航路点时,它会移动到下一个航路点。我已经设置了下一个精灵的角度,以便在航点的属性中播放,但我需要它来平滑转动。我的精灵每 22.5 度到 360 度渲染一次,一些路径以 90 度旋转。因此,精灵可以以 45 度角播放序列,并且它到达一个航路点,下一个要播放的序列可能是 135 度精灵。那么我怎样才能让它变得漂亮和平滑,而不是从 45 直接跳到 135 呢?

4

1 回答 1

1

不要直接设置对象的旋转,而是尝试设置一个目标旋转,然后朝那个方向插值。

例如:

--Sprite is currently rotated 45 degrees, I now want it to change to 135 degrees
mySprite.targetRotation = 135

现在在 enterFrame 函数中(如果您还没有,那么您需要添加一个):

local function Update(event)

local turnSpeed = 0.5
mySprite.rotation = mySprite.rotation +  turnSpeed * (mySprite.targetRotation - mySprite.rotation)

end

turnSpeed 变量应介于 0.0001 到 1 之间,具体取决于您希望它们转动的速度(0.0001 表示转动非常缓慢,1 将是即时的)。

假设您可能拥有多个这些精灵,您需要将它们放在一个表中,并将此计算应用于该表中的所有对象。

于 2013-08-06T09:25:29.157 回答