Never mind, here is an example using hasty’s code as a base:
local nebula = display.newImage( "nebula.png" ) nebula.x, nebula.y = display.contentCenterX, display.contentCenterY local podT = {1,-89, 14,-83, 20,-70, 14,-57, 1,-51, -12,-57, -18,-70, -12,-83} local podR = {69,-20, 82,-14, 88,-1, 82,12, 69,18, 56,12, 50,-1, 56,-14} local podB = {1,49, 14,55, 20,68, 14,81, 1,87, -12,81, -18,68, -12,55} local podL = {-70,-20, -57,-14, -51,-1, -57,12, -70,18, -83,12, -89,-1, -83,-14} physics.addBody( nebula, "dynamic", { friction=0.2, bounce=0.4, shape=podT }, { friction=0.8, bounce=0.0, shape=podR }, { friction=0.8, bounce=0.0, shape=podB }, { friction=0.2, bounce=0.4, shape=podL } ) local circ = display.newCircle( 10, 10, 10 ) physics.addBody( circ ) circ.isSensor = true function circ.collision( self, event ) if( event.otherElement == 1 ) then print( "Hit podT" ) elseif( event.otherElement == 2 ) then print( "Hit podR" ) elseif( event.otherElement == 3 ) then print( "Hit podB" ) elseif( event.otherElement == 4 ) then print( "Hit podL" ) end return false end circ:addEventListener( "collision" )