I guess this was one I had converted from a Runtime listener, as the instantiation of the listener is this:
bg2:addEventListener( "collision", onEm3Collision )
Even if I convert it to this:
bg2.collision = onEm3Collision bg2:addEventListener( "collision", bg2 )
and change the listener function definition to this:
local function onEm3Collision( self, event )
I still get event.x and event.y values that don’t correspond to the global coordinates.
I believe I saw similar behavior with the Runtime listener, but I will have to go back and try it again.