I’m having a similar issue except mine’s a sprite. How would you remove a sprite after collision?
I’m new to lua and programming so these codes are not perfect or maybe not even correct at all. Please help if anyone can.
Many Thanks in advance.
[lua]spriteObject = sprite.newSpriteSheetFromData ( “spriteObject.png”, require(“spriteObject”).getSpriteSheetData() )
spriteObjectSet = sprite.newSpriteSet( spriteObject, 1, 4 )
sprite.add( spriteObjectSet, “spriteObject”, 1, 4, 1000, 0 )
local createSprite = function ()
spriteObjectInstance = sprite.newSprite(spriteObjectSet)
spriteObjectInstance.x = 550
spriteObjectInstance.y = mRand(50, 120)
spriteObjectInstance.dx = 2
spriteObjectInstance.dy = mRand( -1, 1)
spriteObjectInstance.myName = “spriteObjectInstance”
physics.addBody(spriteObjectInstance, “static”, { density = 0, friction = 0, bounce = 0 })
spriteObjectInstance.collision = onBulletCollison
spriteObjectInstance:addEventListener (“collision”, spriteObjectInstance)
levelGroup:insert(spriteObjectInstance)
gameGroup:insert(levelGroup)
spriteObjectInstance:prepare(“spriteObject”)
spriteObjectInstance:play()
local destroysprite = function ()
spriteObjectInstance.isVisible = false
spriteObjectInstance:removeSelf()
spriteObjectSet:dispose()
levelGroup:remove(spriteObjectInstance)
end
if spriteObjectInstance.x < 50 then
transition.cancel(movesprite)
transition.to(destroysprite)
Runtime:removeEventListener(“enterFrame”, movesprite)
end
local onBulletCollision = function( self, event )
if event.phase == “began” and event.other.myName ==“bullet” then
spriteObjectInstance.isVisible = false
spriteObjectInstance:removeSelf()
spriteObjectSet:dispose()
levelGroup:remove(spriteObjectInstance)
Runtime:removeEventListener(“enterFrame”, movesprite)
end
end
local movesprite = function ()
spriteObjectInstance.x = spriteObjectInstance.x - spriteObjectInstance.dx
end
Runtime:addEventListener(“enterFrame”, movesprite)
end
[import]uid: 12455 topic_id: 5090 reply_id: 18778[/import]