使用 CoronaSDK 平滑旋转精灵。

我正在寻找一些关于如何实现以下内容的建议/帮助:

我使用路点设置了一个路径,当敌人到达一个路点时,它就会移到下一个路点。我已经在路点的属性中设置了下一个精灵要播放的角度,但我需要它平稳地转弯。我的精灵以每22.5度的间隔渲染,最多可渲染到360度,而有些路径会转90度。所以,精灵可以在45度播放序列,当它到达下一个路点时,下一个要播放的序列可能是135度的精灵。那么,我该如何使它从45度平稳地转向135度,而不是突然跳到135度?

点赞
用户1182532
用户1182532

将对象的旋转直接设置转向,建议尝试设定目标旋转,然后进行插值。

例如:

-- Sprite 当前旋转了45度,我现在想将其改变至135度
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-06 09:25:29