collision
Para estar a la escucha de una colisión de este tipo, el evento se deberá llamar "collision". Este incluye las fases: "began" y "ended", que significan los momento de inicio y roptura del contacto.
preCollision
Este evento se llama, justo antes que los objetos entren en contacto o interactúen.
postCollision
Este evento se llama, justo después que terminó la intracción entre objetos.
Manejo de Colisiones
Manejo Global
local crate1 = display.newImage( "crate.png", 100, 200 )
physics.addBody( crate1, { density = 1.0, friction = 0.3, bounce = 0.2 } )
crate1.myName = "first crate"
local crate2 = display.newImage( "crate.png", 100, 120 )
physics.addBody( crate2, { density = 1.0, friction = 0.3, bounce = 0.2 } )
crate2.myName = "second crate"
local function onCollision( event )
if ( event.phase == "began" ) then
print( "began: " .. event.object1.myName .. " and " .. event.object2.myName )
elseif ( event.phase == "ended" ) then
print( "ended: " .. event.object1.myName .. " and " .. event.object2.myName )
end
end
Runtime:addEventListener( "collision", onCollision )
Manejo Local
local crate1 = display.newImage( "crate.png" )
physics.addBody( crate1, { density=3.0, friction=0.5, bounce=0.3 } )
crate1.myName = "first crate"
local crate2 = display.newImage( "crate.png" )
physics.addBody( crate2, { density=3.0, friction=0.5, bounce=0.3 } )
crate2.myName = "second crate"
local function onLocalCollision( self, event )
if ( event.phase == "began" ) then
print( self.myName .. ": collision began with " .. event.other.myName )
elseif ( event.phase == "ended" ) then
print( self.myName .. ": collision ended with " .. event.other.myName )
end
end
crate1.collision = onLocalCollision
crate1:addEventListener( "collision", crate1 )
crate2.collision = onLocalCollision
crate2:addEventListener( "collision", crate2 )
No hay comentarios:
Publicar un comentario