Based on what you’ve written, you aren’t doing what I just told you and you’ve simply misunderstood what I said.
Here’s quick sample code that demonstrates what I’m telling you.
display.setStatusBar( display.HiddenStatusBar ) local physics = require("physics") physics.start() physics.setDrawMode( "hybrid" ) physics.setGravity( 0, 0 ) local platform = display.newRect( display.contentCenterX, display.contentCenterY, 100, 200 ) platform.isDangerous = true platform.hitsPlayer = false platform:setFillColor( 1, 0, 0 ) physics.addBody( platform, "static" ) local player = display.newRect( display.contentCenterX+100, display.contentCenterY, 28, 28 ) player:setFillColor( 0, 0.4, 1 ) physics.addBody( player, "dynamic" ) local textCollision = display.newText( "No collision", display.contentCenterX, display.contentCenterY - 180, native.systemFont, 42 ) local textDangerous = display.newText( "platform.isDangerous = "..tostring( platform.isDangerous ), display.contentCenterX, display.contentCenterY - 140, native.systemFont, 42 ) local textIsHit = display.newText( "Player is safe", display.contentCenterX, display.contentCenterY + 140, native.systemFont, 42 ) local function wasPlayerHit() if platform.isDangerous and platform.hitsPlayer then textIsHit.text = "Player is hit!" else textIsHit.text = "Player is safe." end end local function onLocalCollision( self, event ) if ( event.phase == "began" ) then platform.hitsPlayer = true textCollision.text = "Collision" wasPlayerHit() elseif ( event.phase == "ended" ) then platform.hitsPlayer = false textCollision.text = "No collision" end end platform.collision = onLocalCollision platform:addEventListener( "collision" ) player.collision = onLocalCollision player:addEventListener( "collision" ) local function togglePlatform() platform.isDangerous = not platform.isDangerous textDangerous.text = "platform.isDangerous = "..tostring( platform.isDangerous ) wasPlayerHit() if platform.isDangerous then platform:setFillColor( 1, 0, 0 ) else platform:setFillColor( 0.8 ) end end timer.performWithDelay( 1200, togglePlatform, 0 ) local transitionA local function transitionB() transition.to( player, { time=1000, x=display.contentCenterX+100, onComplete=transitionA } ) end function transitionA() transition.to( player, { time=1000, x=display.contentCenterX-100, onComplete=transitionB } ) end transitionA()