Hi Rob,
Yeah i didn’t explait it to well. So i will try it again, i hope this is will be clearer.
When i use this script:
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 )
I get this screen:
http://i66.tinypic.com/2mwrp5w.jpg (the image is very big so i don’t think it will be handy if i post it here)
So as you can see “angry” moves the hole time. When i go over “angry”, the score will be +1 and “angry” will be disappear. But than after a few seconds the other “angry’s” will be displayed. They also move the hole time. But when an other “angry” is created the previous “angry” will stop moving the hole time. Also when i go over the “angry’s” they didn’t disappear en the score don’t go +1.
what i want:
After a few seconds there will be a created a “angry” this one moves the hole time (also when other “angry’s” will be added in the game). Everytime when “happy” goes over “angry”, “angry” will be disappear and the score will be +1.
Can somebody please help me, i have tried months but the only thing that i receive is headache.
@rob
i have added your code in my code like this way:
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 angryList = {} local function makeAngry() local 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" ) angryList[#angryList + 1] = angry end timer.performWithDelay( 5000, makeAngry, 50 ) makeAngry() 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 )
i get this error; http://i67.tinypic.com/2v7t99l.jpg