-1
我面臨一個問題,那就是,我有幾個物理體,他們的形狀是在物理編輯器中定義的,我使用的是形狀的.lua文件。但我無法找到如何分別在X和Y軸上應用縮放? 有什麼幫助嗎?如何用物理編輯器縮放自定義形狀物理體
我面臨一個問題,那就是,我有幾個物理體,他們的形狀是在物理編輯器中定義的,我使用的是形狀的.lua文件。但我無法找到如何分別在X和Y軸上應用縮放? 有什麼幫助嗎?如何用物理編輯器縮放自定義形狀物理體
如果您正在使用物理編輯器通過安德烈亞斯·勒夫/ 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
感謝您的答覆,但均勻縮放,如果我想在應用不同的比例因子是什麼X和Y? 例如:xScale = 1和yScale = 1.2 –
我編輯了我的整個答案,現在可以使用它了。 我希望這會有所幫助 – NaviRamyle
非常感謝你 我剛剛倒過sX和sY 現在它工作完美:) –