如何在电晕sdk手指滑动的方向发射子弹

时间:2013-07-16 17:25:40

标签: lua corona

我正在进行日冕游戏。当用户在对象上滑动手指时,我想要发射子弹。他进一步挥动,子弹应该越走越远。我研究过这个并且在敲击事件中子弹被发射,有两个功能开始射弹和游戏循环,开始射弹用于射击弹丸和游戏循环用于翻译武器,但我无法理解如何瞄准目标使用手指轻扫。请给我任何建议,谢谢...... 目前已实现的代码如下:

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

1 个答案:

答案 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