Kinda a funny problem I think. This is the basic drag me code with the addition of making the dragged object no longer physical for the duration of the drag. Which works out great for the drag, but when I let go, I can put platforms inside of static floors.
I know this is somehow possible, I’ve seen it done in bubble ball, I just need the platform to kick itself out of the static object at the end of the drag. Any help would be much appreciated.
[code]
local function startDrag( event )
local t = event.target
local phase = event.phase
if “began” == phase then
display.getCurrentStage():setFocus( t )
t.isFocus = true
– Store initial position
t.x0 = event.x - t.x
t.y0 = event.y - t.y
– Make body type temporarily “kinematic” (to avoid gravitional forces)
event.target.bodyType = “kinematic”
–make platform and object non-physical
event.target.isBodyActive = false
– Stop current motion, if any
event.target:setLinearVelocity( 0, 0 )
event.target.angularVelocity = 0
elseif t.isFocus then
if “moved” == phase then
t.x = event.x - t.x0
t.y = event.y - t.y0
elseif “ended” == phase or “cancelled” == phase then
display.getCurrentStage():setFocus( nil )
t.isFocus = false
event.target.isBodyActive = true
– Switch body type back to “dynamic”, unless we’ve marked this sprite as a platform
if ( not event.target.isPlatform ) then
event.target.bodyType = “dynamic”
end
end
end
– Stop further propagation of touch event!
return true
end
[/code] [import]uid: 42079 topic_id: 8162 reply_id: 308162[/import]