Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 使精灵平稳旋转_Lua_Sprite_Coronasdk - Fatal编程技术网

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