我开始使用love2d的物理模块制作游戏。
我尝试制作一个(水平)墙壁物体让玩家继续行走,但是有一个问题:
玩家可以通过墙壁绘图的一部分(这发生在右边),它可以走过看起来像#34; air"在墙的左边。
似乎碰撞区和图纸没有完美重叠。
这就是我构建墙的方式(在Wall
类中):
function Wall:new(x, y, w, h, world)
self.x = x
self.y = y
self.w = w
self.h = h
self.body = love.physics.newBody(world, self.x, self.y, "kinematic")
self.shape = love.physics.newRectangleShape(self.w, self.h)
self.fixture = love.physics.newFixture(self.body, self.shape, 100)
end
我正在使用这些变量调用构造函数(在main.lua
)
objects.wall = Wall(40, height - 60, 200, 5, world)
这是我绘制它的方式(在Wall
类中)
love.graphics.rectangle("fill", self.body:getX(), self.body:getY(), self.w, self.h)
我使用rxi/classic
制作课程。
墙被绘制,它只是与玩家奇怪地互动。
答案 0 :(得分:0)
结果newRectangleShape
需要矩形中心的x和y坐标,而我的绘图函数是错误的,因为我认为x和y是左上角的坐标。