Expanding Objects and Physics

Hopefully this is a simple "Doh!" question.

I have an object on the screen and I'm using transition.to to change its scale to make it larger over time. As it gets larger, it needs to push things around it. But I've confirmed using the hybrid display mode that my physics.body stays the original size and no the grown size.

How do I make the physics.body grow?

Thanks in advance!
Rob

not possible currently :(

Hi Rob,
I tried to solve your (interesting) problem.
The result it's certainly rough, and really I don't know if it can come you in handy (keep in mind that I have started to program only 4 months ago).
Anyway, here is the code. Copy and paste in your editor.

--> START

display.setStatusBar(display.HiddenStatusBar);

local p = require "physics";
p.start();
p.setDrawMode("hybrid");

local ground = display.newRect(0, 479, 320, 1 )
p.addBody(ground, "static",{})
ground:setFillColor(200,200,200)

local message1 = display.newText(
"Hi, I'm the red crate.",
0, 0, 20
)
message1:setReferencePoint(display.CenterReferencePoint)
message1.x = 160; message1.y = 200

local message2 = display.newText(
"I want to show you something. Click on me please.",
0, 0, 20
)
message2:setReferencePoint(display.CenterReferencePoint)
message2.x = 160; message2.y = 220

local crate1 = display.newRect(0,0,40,40)
crate1.x=140; crate1.y=459
crate1:setFillColor(0,0,255)
p.addBody(crate1,"dynamic",{})

local crate2 = display.newRect(0,0,40,40)
crate2.x=180; crate2.y=459
crate2:setFillColor(255,0,0)
p.addBody(crate2,"dynamic",{})

local plus = 0

local function growing(e)
if crate2.height <= 100 then do
message1.text = ""
message2.text = "UUUUAAAAAARRRRRRGHHHHH!!!!!"
crate2:removeSelf()
crate2 = display.newRect(0,0,(40 + plus),(40 + plus))
crate2.x=180; crate2.y= (459 - (plus/2))
crate2:setFillColor(0,255,0)
p.addBody(crate2,"dynamic",{})
plus = plus + 2
end
else
Runtime:removeEventListener("enterFrame", growing)
end
end

local function callGrowing(e)
if e.phase == "ended" then
Runtime:addEventListener("enterFrame", growing)
end
end

crate2:addEventListener("touch", callGrowing)

--> END

I'll try some other solution. That's it for now. Bye!

views:1575 update:2011/9/28 9:01:40
corona forums © 2003-2011