如何让一个射弹出现在爱情的一个地方

时间:2015-08-05 15:28:58

标签: lua love2d

我目前正在使用Lua中的Love2d引擎创建一个游戏,我想知道是否有可能像弹丸一样出现在一个地方。就像一个英雄在一个比他们前50px的敌人身上投下火焰柱。理想情况下,火焰柱会出现,对敌人造成伤害,然后消失,这可能都发生在一个框架内。到目前为止,我的代码如下:

local function addProj()
  local speed = dt
  for i, projectile in ipairs(proj) do
    if playerBack == true then 
      projectile.y = projectile.y - 250*speed
        if projectile.y < player.y - 150 then
          table.remove(proj,i)
        end
   elseif playerForward == true then
     projectile.y = projectile.y + 250*speed
      if projectile.y > player.y + 150 then
         table.remove(proj,i)
      end
   elseif playerLeft == true then
     projectile.x = projectile.x - 250*speed
       if projectile.x < player.x - 150 then
         table.remove(proj,i)
       end
   elseif playerRight == true then
     projectile.x = projectile.x + 250*speed
       if projectile.x > player.x + 150 then
         table.remove(proj,i)
       end
    end
  end
end

上面的代码现在只是一种解决方法,但它基本上会使射弹在给定方向上移动一定距离然后使其消失。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

好的,所以最好的方法是设置世界回调并测试碰撞。有很好的教程,示例和文档。基本上这将允许你做的是让你的程序有能力碰撞物理对象。

Tutorial for the callbacks

page for the creation of the callbacks

如果你想手动完成,就像有人使用基础物理一样,你可以将所有对象放在一个表中,每次更新都要检查表格,看看它们的x或y值是否匹配,很明显,在较大的游戏中,游戏会减慢速度。