车身拉伸和碰撞区域发生了变化

时间:2016-07-04 12:40:58

标签: lua box2d sdl-2 love2d

我开始使用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制作课程。

墙被绘制,它只是与玩家奇怪地互动。

此处截图https://imgur.com/sbLIY8v

1 个答案:

答案 0 :(得分:0)

结果newRectangleShape需要矩形中心的x和y坐标,而我的绘图函数是错误的,因为我认为x和y是左上角的坐标。