所以我有个问题。如何才能画出中间有空隙的矩形,

我想做的是在它上面使用一个边界框,这样物体就可以在内部移动并与内部边缘碰撞。
我试着使用一个多边形,但当我给出这个顶点时:
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)它会在里面填充一个正方形,但我想要一个间隙,我想让碰撞框只覆盖红色的一侧。我该怎么做呢?
发布于 2018-12-09 12:04:03
我要做的是使用以" 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.,据我所知,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()))https://stackoverflow.com/questions/53639146
复制相似问题