2013-06-25 85 views

回答

1

如果您正在使用物理編輯器通過安德烈亞斯·勒夫/ code-and-web.de

你可以試試這個代碼

這是實現

local scaleX = 0.5 
local scaleY = 0.2 
local physicsData = (require ("your.physics.object")).physicsData(scaleX,scaleY) --This is the scaling of the physics body 
object = display.newImage("youimage.png") 
object.xScale = scaleX 
object.yScale = scaleY 
physics.addBody(object, "static", physicsData:get("physics_dody")) 

在物理編輯器Lua(您的.lua形狀),您必須更改以下代碼

function M.physicsData(scale) 

function M.physicsData(scaleX,scaleY) 

local s = scale or 1.0 
for bi,body in pairs(physics.data) do 
    for fi,fixture in ipairs(body) do 
     if(fixture.shape) then 
      for ci,coordinate in ipairs(fixture.shape) do 
       fixture.shape[ci] = s * coordinate 
      end 
     else 
      fixture.radius = s * fixture.radius 
     end 
    end 
end 

local sX = scaleX or 1.0 
local sY = scaleY or 1.0 
for bi,body in pairs(physics.data) do 
    for fi,fixture in ipairs(body) do 
     if(fixture.shape) then 
      for ci,coordinate in ipairs(fixture.shape) do 
       if (ci%2) == 0 then 
        fixture.shape[ci] = sX * coordinate 
       else 
        fixture.shape[ci] = sY * coordinate 
       end 
      end 
     else 
      fixture.radius = sX * fixture.radius 
     end 
    end 
end 
+0

感謝您的答覆,但均勻縮放,如果我想在應用不同的比例因子是什麼X和Y? 例如:xScale = 1和yScale = 1.2 –

+0

我編輯了我的整個答案,現在可以使用它了。 我希望這會有所幫助 – NaviRamyle

+0

非常感謝你 我剛剛倒過sX和sY 現在它工作完美:) –