我正在尝试创建一个枪模拟器类型的移动应用程序,我正在尝试编写一个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)
我遇到的问题是枪会反冲,但保持旋转,这是不好的,因为我希望它在短时间内“跌落”,甚至不会后退。当手枪仍然旋转时,按下了按钮(我没有打扰)
非常感谢任何帮助。
答案 0 :(得分:0)
所以,反冲方面现在正在使用,因为我现在正在使用timer.performWithDelay。我发现timer.performWithDelay的行为与我预期的方式不同的原因是因为我在performWithDelay括号内使用括号,这是不需要的,我还指出它应该执行一次。
timer.performWithDelay(20, revPistolRecoil, 1)
我仍然将pistolRecoil称为函数。
作为旁注,当我应用相同的更改时,muzzleFlashP现在也可以工作。
感谢您的帮助!