如何在LUA,2D中对枪进行反冲?

时间:2018-03-05 09:46:34

标签: lua rotation delay corona

我正在尝试创建一个枪模拟器类型的移动应用程序,我正在尝试编写一个fire功能。它到目前为止一直很顺利,但我是一个新手,我很难找到解决问题的方法:

function pistolRecoil()
transition.to(pistol, {time = 30, rotation = -20 })
end

function revPistolRecoil()
transition.to(pistol, {time = 50, rotation = 20 })
end

--Fire the pistol--
function tapFirePistol (event)
--display flash
muzzleFlashP:toFront()
timer.performWithDelay(20, muzzleFlashPFunc())
pistolAmmo = pistolAmmo - 1
----timings
--sound(.wav),
audio.play(pFireSound)
--rotate,rotate
pistolRecoil()
print("1st", pistol.rotation)
pistolRecoil()
print("2nd", pistol.rotation)
revPistolRecoil()
----timings
if pistolAmmo <= 0 then fireButtonPistol:removeEventListener("tap", 
tapFirePistol)
pistolAmmoCount.text = pistolAmmo
end
if pistolAmmo <= 0 then pistolAmmo = 0
pistolAmmoCount.text = pistolAmmo
end
pistolAmmoCount.text = pistolAmmo
end

fireButtonPistol:addEventListener("tap", tapFirePistol)

我遇到的问题是枪会反冲,但保持旋转,这是不好的,因为我希望它在短时间内“跌落”,甚至不会后退。当手枪仍然旋转时,按下了按钮(我没有打扰)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以,反冲方面现在正在使用,因为我现在正在使用timer.performWithDelay。我发现timer.performWithDelay的行为与我预期的方式不同的原因是因为我在performWithDelay括号内使用括号,这是不需要的,我还指出它应该执行一次。

timer.performWithDelay(20, revPistolRecoil, 1)

我仍然将pistolRecoil称为函数。

作为旁注,当我应用相同的更改时,muzzleFlashP现在也可以工作。

感谢您的帮助!