我目前正在使用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
上面的代码现在只是一种解决方法,但它基本上会使射弹在给定方向上移动一定距离然后使其消失。感谢您的帮助!
答案 0 :(得分:0)
好的,所以最好的方法是设置世界回调并测试碰撞。有很好的教程,示例和文档。基本上这将允许你做的是让你的程序有能力碰撞物理对象。
page for the creation of the callbacks
如果你想手动完成,就像有人使用基础物理一样,你可以将所有对象放在一个表中,每次更新都要检查表格,看看它们的x或y值是否匹配,很明显,在较大的游戏中,游戏会减慢速度。