2013-05-07 56 views
0

我正在做一个基本的游戏来娱乐我的朋友。我还没有叫它,但它基本上是一个广场追逐另一个广场。红场是AI,白场是玩家控制的。我已经知道了碰撞,并且它完美地工作。LOVE2D - 两个玩家之间的碰撞

我决定制作这款游戏​​的双人游戏版本。所以我只是将这些文件复制到另一个文件夹中,并将其转换为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 

回答

0

我找到了答案,就像这样:

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