两名球员之间的碰撞

问题描述 投票:0回答:1

我正在做一个基本游戏来娱乐我的朋友。我还没有把它称为任何东西,但它基本上是一个追逐另一个方块的方块。红色方块是AI,白色方块是玩家控制的。我已经发现了碰撞,并且完美无缺。

我决定制作这个游戏的2人版本。所以我只是将文件复制到另一个文件夹并将其转换为2人游戏。除碰撞外,一切正常。我有与单人游戏完全相同的碰撞,但由于某种原因,碰撞并不总是有效。这很奇怪,有时它只会触及玩家的右侧,或者有时是左侧。没有确定会发生什么。

无论如何,这是我的死因检查代码。我在main.lua中调用它,在love.update()中。

death.check=function()
    for _,enemy in ipairs(enemy) do
        for _,player in ipairs(player) do
            if ((enemy.x+enemy.w>player.x and enemy.x+enemy.w<(player.x+player.w)) and
            (enemy.y+enemy.h>player.y and enemy.y+enemy.h<(player.y+player.h))) then
                death.state=true
            end
        end
    end
end
lua collision love2d
1个回答
1
投票

我找到了答案,像这样:

for _,o in ipairs(enemy) do
    for _,i in ipairs(player) do
        if (o.x+o.w>i.x and o.x<i.x+i.w and
        o.y+o.h>i.y and o.y<i.y+i.h)  then
            death.state=true
        end
    end
end
© www.soinside.com 2019 - 2024. All rights reserved.