所以我有一个问题。如何绘制这些矩形,中间有一个缝隙,
我想做的是在其上使用边框,以便对象可以在内部移动并与内部边缘碰撞。
我尝试使用多边形,但是当我给出这些顶点时:
points = {4, 4, 80, 4, 80, 80, 4, 80, 4, 4, 6, 6, 78, 6, 78, 78, 6, 78, 6, 6}
love.graphics.polygon("fill", points)
它在内部填充了一个正方形,但是我想要一个空隙,并且希望碰撞盒仅覆盖红色的一面。我该怎么办?
答案 0 :(得分:0)
我要做的是使用以“ line”作为参数1的多边形而不是“ fill”,使用4个坐标,并将线的宽度设置为2
points = {5, 5, 79, 5, 79, 79, 5, 79}
love.graphics.setLineWidth(2)
love.graphics.polygon("line", points)
这将绘制您想要的形状。
根据您的理解,您对要编码的内容的描述听起来很像this tutorial on using love.physics.,物理上不允许绘制空心形状。因此,如果您想获得物体从墙壁弹起的最终结果,我将按照本教程的说明进行操作,并添加3个与墙壁和屋顶的地面物体相似的物体
--Wall left
objects.wall1 = {}
objects.wall1.body = love.physics.newBody(world, 25, 650/2)
objects.wall1.shape = love.physics.newRectangleShape(50, 650)
objects.wall1.fixture = love.physics.newFixture(objects.wall1.body, objects.wall1.shape)
--Wall Right
objects.wall2 = {}
objects.wall2.body = love.physics.newBody(world, 625, 650/2)
objects.wall2.shape = love.physics.newRectangleShape(50, 650)
objects.wall2.fixture = love.physics.newFixture(objects.wall2.body, objects.wall2.shape)
--Roof
objects.roof = {}
objects.roof.body = love.physics.newBody(world, 650/2, 25)
objects.roof.shape = love.physics.newRectangleShape(650, 50)
objects.roof.fixture = love.physics.newFixture(objects.roof.body, objects.roof.shape)
以及将绘图部分添加到love.draw()
love.graphics.setColor(0.76, 0.18, 0.05)
love.graphics.polygon("fill", objects.wall1.body:getWorldPoints(objects.wall1.shape:getPoints()))
love.graphics.polygon("fill", objects.wall2.body:getWorldPoints(objects.wall2.shape:getPoints()))
love.graphics.polygon("fill", objects.roof.body:getWorldPoints(objects.roof.shape:getPoints()))