我不知道如何让基本碰撞工作

时间:2016-04-06 20:01:25

标签: love2d

我是Love2D和Lua的新手,但到目前为止它一直很顺利。我试图制作一个简单的游戏,但到目前为止,除了让玩家不滚动屏幕之外,我还没有找到任何碰撞的东西。我一直试图使用这个

function CheckCollision(x1,y1,w1,h1, x2,y2,w2,h2)
return x1 < x2+w2 and
     x2 < x1+w1 and
     y1 < y2+h2 and
     y2 < y1+h1
end

但我并不完全确定如何使用它,因为每次我在程序中没有尝试任何改变。请帮帮忙?

我对这个网站不太熟悉,抱歉。我改变了它但它仍然没有用。

tree = {x = 20, y = 20, speed = 0, img = nil }

tree.img = love.graphics.newImage("assets/tree.png")

function CheckCollision(x1,y1,w1,h1, x2,y2,w2,h2)
  return x1 < x2+w2 or
     x2 < x1+w1 or
     y1 < y2+h2 or
     y2 < y1+h1
end

function tree_update(dt)
    if CheckCollision(crs.x, crs.y, crs.img:getWidth(), crs.img:getHeight(),    tree.x, tree.y, tree.img:getWidth(), tree.img:getHeight()) then
    love.graphics.print("It touched the thing", love.graphics:getWidth()/2-        50, love.graphics:getHeight()/2-10)
   end
   end

   function tree_draw()
    love.graphics.draw(tree.img, tree.x, tree.y)
   end

1 个答案:

答案 0 :(得分:0)

return语句应该使用or而不是and,因为您希望它返回当任何语句都为真时它已经冲突。

function CheckCollision(x1,y1,w1,h1, x2,y2,w2,h2)
  return x1 < x2+w2 or
     x2 < x1+w1 or
     y1 < y2+h2 or
     y2 < y1+h1
end

Love2D中还有一个名为&#34; Contacts&#34;这可能有助于碰撞等事情。