android - Random error occurs every so often: attempt to compare nil with number Corona SDK -
every app throw following error:
gameplay.lua:121: attempt compare nil number
the function moves object right of screen left. when goes 50 pixels offscreen object should remove. here code method:
function moveobject(self,event) if (self.x)<-50 --this line 121 --remove object runtime:removeeventlistener("enterframe", event.self) display.remove(event.target) else self.x = self.x-self.speed --move object left @ value speed end end the error pops when method called , goes restart screen:
------when ball hits object go restart scene------------
local function oncollision( self,event ) if(event.object2.name == "bonus")then--if hit bonus ball event.object2:removeself() --set score local currentscore =game.returnscore() game.setscore(currentscore*2) scoretext.text = game.returnscore() runtime:removeeventlistener("enterframe", event.object2) else composer.gotoscene("restart") runtime:removeeventlistener("touch", onobjecttouch) end end ball.collision = oncollision runtime:addeventlistener( "collision", ball ) any ideas happening? quite error occurs, maybe 1 in 15 goes.
i think has event listeners. find corona event listeners still run after scene has changed. i'm guessing ball cleaned (removed) before event listener stopped, , every , listener still being run before listener cleaned up
to fix it, try
- removing listener first, ball second
simply adding null check before if check
if (self ~= null) if (self.x)<-50 --this line 121 --remove object runtime:removeeventlistener("enterframe", event.self) display.remove(event.target)
Comments
Post a Comment