hi guys. I have this little game that I have been working on. I’m stuck on this particular issue for 2 days now.
This is what’s happening. I spawn a dragon and move it across the X axis and when it reaches a certain point, I want to remove it. The dragon is a
sprite.
When the dragon is remove and nil, I keep getting this error.
…HMzBF-CWYcERpFamRE+++TI/TemporaryItems/21/level1.lua:267: in function <…hmzbf-cwycerpfamre>
?: in function <?:214>
Runtime error
…HMzBF-CWYcERpFamRE+++TI/TemporaryItems/21/level1.lua:267: attempt to index upvalue ‘greendragonInstance’ (a nil value)
stack traceback:
[C]: ?
all I want to do is remove the dragon.
here’s my code:
Thanks in advance for any helps.
[lua] – level objects goes in here
local createDragons = function()
greendragonInstance = sprite.newSprite(greendragonSet)
greendragonInstance.x = 550
greendragonInstance.y = mRand(50, 120)
greendragonInstance.dx = 2
greendragonInstance.dy = mRand( -1, 1)
greendragonInstance.objectName = “greendragonInstance”
greendragonInstance.isVisible = true
physics.addBody(greendragonInstance, “static”, { density = 0, friction = 0, bounce = 0 })
levelGroup:insert(greendragonInstance)
gameGroup:insert(levelGroup)
greendragonInstance:prepare(“greendragon”)
greendragonInstance:play()
end
–===================== Move Dragon ===================================================
local movedragon = function ()
greendragonInstance.x = greendragonInstance.x - greendragonInstance.dx
end
–====================== Destroy Dragons ==============================================
local destroydragon = function ()
if greendragonInstance.x <= 300 then – line 267 is here
greendragonInstance.x = greendragonInstance.x
greendragonInstance.isVisible = false
Runtime:removeEventListener(“enterFrame”, movedragon)
greendragonInstance:removeSelf()
greendragonInstance = nil
end
end
local canceldestroydragon = function ()
Runtime:removeEventListener(“enterFrame”, destroydragon)
end
local destroydragonTimer = timer.performWithDelay ( 1, destroydragon, 1)
local trancancel = transition.to(canceldestroydragon, { time = 2, delay = 1, onComplete = destroydragonTimer})
[import]uid: 12455 topic_id: 5611 reply_id: 305611[/import] </…hmzbf-cwycerpfamre>