collision

Type Event
Revision 2017.3178
Keywords collision, physics
See also Collision Detection (guide)
preCollision
postCollision
physics.setAverageCollisionPositions()
physics.setReportCollisionsInContentCoordinates()

Overview

Used in conjunction with the physics library. Physics engine collision events are exposed through the Corona event listener model with the event name of "collision". In addition to standard collision events, Corona offers preCollision and postCollision events.

Object References

Depending on whether collisions are detected locally or globally, references to the objects involved will vary. For more information about these two collision handling methods, see the Collision Detection guide.

Local Collision Event   Global Collision Event
event.target or self   event.object1
event.other   event.object2
event.selfElement   event.element1
event.otherElement   event.element2

Please compare these two example functions for reference variations:

-- Local collision handling
local function onLocalCollision( self, event )
    print( event.target )        --the first object in the collision
    print( event.other )         --the second object in the collision
    print( event.selfElement )   --the element (number) of the first object which was hit in the collision
    print( event.otherElement )  --the element (number) of the second object which was hit in the collision
end
object.collision = onLocalCollision
object:addEventListener( "collision" )

-- Global collision handling
local function onGlobalCollision( event )
    print( event.object1 )       --the first object in the collision
    print( event.object2 )       --the second object in the collision
    print( event.element1 )      --the element (number) of the first object which was hit in the collision
    print( event.element2 )      --the element (number) of the second object which was hit in the collision
end
Runtime:addEventListener( "collision", onGlobalCollision )

Gotchas

Properties

event.y