Lua 使精灵平稳旋转
只是想了解一些关于如何实施以下内容的建议/帮助:Lua 使精灵平稳旋转,lua,sprite,coronasdk,Lua,Sprite,Coronasdk,只是想了解一些关于如何实施以下内容的建议/帮助: 我有一条使用航路点设定的路径,当敌人到达一个航路点时,它会移动到下一个航路点。我已经为航路点的属性设置了下一个精灵的角度,但我需要它平滑地旋转。我的精灵以22.5度到360度的间隔渲染,一些路径以90度旋转。因此,精灵可以以45度角播放该序列,并到达一个航路点,在该航路点上,下一个要播放的序列可能是135度的精灵。那么,我如何才能让它变得平滑,而不是从45度直线跳到135度呢?与其直接设置对象的旋转,不如尝试设置目标旋转,然后向该方向插值 例如:
我有一条使用航路点设定的路径,当敌人到达一个航路点时,它会移动到下一个航路点。我已经为航路点的属性设置了下一个精灵的角度,但我需要它平滑地旋转。我的精灵以22.5度到360度的间隔渲染,一些路径以90度旋转。因此,精灵可以以45度角播放该序列,并到达一个航路点,在该航路点上,下一个要播放的序列可能是135度的精灵。那么,我如何才能让它变得平滑,而不是从45度直线跳到135度呢?与其直接设置对象的旋转,不如尝试设置目标旋转,然后向该方向插值 例如:
--Sprite is currently rotated 45 degrees, I now want it to change to 135 degrees
mySprite.targetRotation = 135
现在在enterFrame函数中(如果还没有,则需要添加一个):
转速变量应介于0.0001到1之间,具体取决于您希望其转动的速度(0.0001表示转动非常缓慢,1表示瞬时)
假设您可能有多个精灵,则需要将它们放在一个表中,并将此计算应用于该表中的所有对象
local function Update(event)
local turnSpeed = 0.5
mySprite.rotation = mySprite.rotation + turnSpeed * (mySprite.targetRotation - mySprite.rotation)
end