2016-10-18 5 views
1

私はLove2Dの物理的な体にイメージを設定しようとしています。私は物理的な物体の画像を持っている部分に行ってきましたが、私はその画像を持ち、物理的な物体の物体を透明に見せかけることはできません。love2D love.physicsと体に画像を設定する

身体のインスタンスを簡単に作成できるクラスがあります。

ポリゴンを塗りつぶす前にself.imageを描画すると、何も表示されないようです。

誰でも私が必要とする結果を得るのを助けることができますか?

object.luaのすべて:

local object = {} 
local object_mt = { __index = object } 
function object.newRect(world,x,y,width,height,typeOfBody,sprite) 
    local instance = {} 
    setmetatable(instance, object_mt) 
    instance.body = love.physics.newBody(world, x, y, typeOfBody or nil) -- create a body at x,y 
    instance.shape = love.physics.newRectangleShape(x,y,width,height) 
    instance.fixture = love.physics.newFixture(instance.body,instance.shape) -- create a fixture of width/height 
    instance.image = sprite and love.graphics.newImage(sprite) or nil 
    return instance 
end 
function object:Draw() 
    love.graphics.polygon("fill",self.body:getWorldPoints(self.shape:getPoints())) 
    if self.image then 
     love.graphics.draw(self.image, self.body:getX(), self.body:getY(), self.body:getAngle(), 1, 1, self.image:getWidth()/2, self.image:getHeight()/2) 
    end 
end 
function object.getPosition() 
    return self.body:GetPosition() 
end 
return object 
+0

オブジェクトの2つの異なるバージョンを用意しています.Draw()を使用して、オブジェクトからポリゴンを削除したい場合は、次のようにします。あなたが使いたいものはどれですか? 「それはまったく何も表示しない」という意味はどういう意味ですか?ポリゴンさえない? – Piglet

+0

私はアルファを間違っていました(0から255ではなく0から1にする)、ポリゴンは表示されますが、画像は表示されません。私はポストエディタで最初のバージョンを編集してから、残りのコードをnotepad ++からコピーしたので、違うバージョンのオブジェクト:Draw()は間違った順序であった点を除いて全く同じでした – Ducktor

答えて

2

私が正しくあなたの質問を理解していれば、あなただけの物理オブジェクトを描画しないように、あなたのDraw関数から、

love.graphics.polygon("fill",self.body:getWorldPoints(self.shape:getPoints())) 

を削除する必要がありますする必要があります。ただし、これによりimageのないオブジェクトには何も表示されません。

function object:Draw() 
    if self.image then 
    love.graphics.draw(
     self.image, self.body:getX(), self.body:getY(), self.body:getAngle(), 
     1, 1, self.image:getWidth()/2, self.image:getHeight()/2 
    ) 
    else 
    love.graphics.polygon("fill", self.body:getWorldPoints(self.shape:getPoints())) 
    end 
end 
関連する問題