CoronaSDK顺畅地旋转精灵

时间:2013-08-05 20:39:52

标签: lua sprite corona

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

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

1 个答案:

答案 0 :(得分: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将是瞬间)。

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