我是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
答案 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;这可能有助于碰撞等事情。