我正在进行日冕游戏。当用户在对象上滑动手指时,我想要发射子弹。他进一步挥动,子弹应该越走越远。我研究过这个并且在敲击事件中子弹被发射,有两个功能开始射弹和游戏循环,开始射弹用于射击弹丸和游戏循环用于翻译武器,但我无法理解如何瞄准目标使用手指轻扫。请给我任何建议,谢谢...... 目前已实现的代码如下:
local function startprojectile(event)
gameIsActive=true
local firetimer
local getobj=event.target
local getxloc=getobj.x
local getyloc=getobj.y
local function firenow()
if gameIsActive=false then
timer.cancel(firetimer)
firetimer=nil
else
local bullet=display.newImageRect("object.png",50,60);
bullet.x=getxloc-50; bullet.y=getyloc-50
bullet.type=bullet1
physics.addBody(bullet,{isSensor=true})
weaponGroup:insert(bullet)
end
gameIsActive=false
end
firetimer.timer.performWithDelay(650,firenow)
end
local function gameloop()
local i
for i=weaponGroup.numChildren,1,-1 do
local weapon=weaponGroup[i]
if weapon ~=nil and weapon.x ~=nil
then
weapon:translate(-20,0)
end
end
答案 0 :(得分:0)
你可以使用内置的lua函数
来获得应该射击子弹的角度startX, startY = player.x, player.y
dir = math.atan2(( swipeY - player.y ), ( swipeX - player.x ))
bulletDx = bullet.speed * math.cos(dir)
bulletDy = bullet.speed * math.sin(dir)
table.insert( bullet, { x = startX, y = startY, dx = bulletDx, dy = bulletDy } )
您可以将变量从滑动Y更改为Corona使用的任何变量(我不用它编码)。 我假设你知道如何移动子弹,但如果没有,
for i, v in ipairs( bullet ) do
bullet.x = bullet.x + bullet.dx * dt
bullet.y = bullet.y + bullet.dy * dt
end