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

问题描述 投票:0回答:1

我正在尝试创建一个枪模拟器类型的移动应用程序,我正在尝试编写一个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)

我遇到的问题是枪会反冲,但保持旋转,这是不好的,因为我希望它在短时间内“掉落”回来,即使在火按钮中也不会后退。在手枪仍然旋转的情况下敲击(我没有被打扰)

任何帮助是极大的赞赏。

lua rotation delay corona
1个回答
0
投票

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

timer.performWithDelay(20, revPistolRecoil, 1)

我仍然把pistolRecoil称为函数。

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

谢谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.