2016-07-04 62 views
0

我開始使用love2d的物理模塊來製作遊戲。身體繪圖和碰撞區域轉移

我試着製作(水平)牆體物件以供玩家行走,但存在一個問題:
玩家可以穿過牆上的一部分繪圖(這發生在右邊),它可以走路看起來像是牆上左邊的「空氣」。

似乎碰撞區和圖形不完全重疊。

這就是我要建牆(在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

+0

介意張貼截圖? – user6245072

+0

@ user6245072完成那個 –

+0

它可能是您使用的儀表的問題? – user6245072

回答

0

原來newRectangleShape要求x和y座標爲矩形的中心,我的繪製函數是錯誤的,因爲我正在考慮X和Y是左上角的座標。