Physic function doesn't work

Hello everybody,

I’m busy with a game. I created a function “angry” because i want after a few seconds there will be add a new “angry”. That’s succesful but the score don’t +1 and the “angry” doesn’t remove. Only the first one that is created. 

Who can help me??

display.setStatusBar(display.HiddenStatusBar) local physics = require( "physics" ) physics.start() physics.setGravity(0, 0) local centerX = display.contentCenterX local centerY = display.contentCenterY local actualW = display.actualContentWidth local actualH = display.actualContentHeight local secondsLeft = 01 \* 60 -- 20 minutes \* 60 seconds local background = display.newRect( centerX, centerY, actualW, actualH ) background:setFillColor( 0, 0, 1 ) local score = 0 local scoreTxt = display.newText( "0", 0, 0, native.systemFontBold, 40 ) scoreTxt.x = centerX + actualW/2 - 20 scoreTxt.y = centerY - actualH/2 + 20 local function updateScore(event) score = score + 1 scoreTxt.text = string.format("%d", score ) end local clockText = display.newText("01:00", display.contentCenterX, 80, native.systemFontBold, 80) clockText:setFillColor( 0.7, 0.7, 1 ) local happy = display.newCircle( 0, 0, 10 ) happy.x = 45 happy.y = 45 physics.addBody( happy, "dynamic" ) happy:setFillColor( 0, 1, 0 ) happy.myName = "happy" local function angry() angry = display.newCircle( 0, 0, 10 ) angry.x = 420 angry.y = 280 physics.addBody( angry, "static" ) angry:setFillColor( 1, 0, 0 ) angry.myName = "angry" physics.addBody( angry, "static" ) end timer.performWithDelay( 5000, angry, 50 ) angry() local function updateTime() -- decrement the number of seconds secondsLeft = secondsLeft - 1 -- time is tracked in seconds. We need to convert it to minutes and seconds local minutes = math.floor( secondsLeft / 60 ) local seconds = secondsLeft % 60 -- make it a string using string format. local timeDisplay = string.format( "%02d:%02d", minutes, seconds ) clockText.text = timeDisplay end local countDownTimer = timer.performWithDelay( 1000, updateTime, secondsLeft ) function touchScreen(event) if event.phase == "began" then transition.to(happy, {time=1000, x=event.x, y=event.y}) end end Runtime:addEventListener( "touch", touchScreen ) function moveAngry() transition.to(angry, {time=1000, x=math.random( centerX - actualW/2, centerX + actualW/2 ), y=math.random( centerY - actualH/2, centerY + actualH/2 ), onComplete=moveAngry }) end moveAngry() local function functions() display.remove(angry) updateScore() end function onCollision(event) if event.phase == "began" then if event.target.myName == "angry" and event.other.myName == "happy" then functions() end end end angry:addEventListener( "collision", onCollision ) local function endGame() if secondsLeft == 0 then print("bye") Runtime:removeEventListener( "enterFrame", endGame ) end end Runtime:addEventListener( "enterFrame", endGame )

Thanks!

In your function angry() you are overwriting the previous “angry” because you are using the same variable name.  Instead you should use a table to keep all the angry’s in.  

Moved to appropriate forum, as this isn’t a Corona Enterprise problem/question.

Thanks

In your function angry() you are overwriting the previous “angry” because you are using the same variable name.  Instead you should use a table to keep all the angry’s in.  

Moved to appropriate forum, as this isn’t a Corona Enterprise problem/question.

Thanks