not sure where to put that and i added code for restart button in lines 29 to down and changeScene function from line 168 in order to restart scene with click on that button still not sure how to stop game and scoring when time is up
[code]module ( … , package.seeall )
function new( )
local localGroup = display.newGroup ( )
local time_remain = 24
time_up = false
ready = false
local time_remain = 24
local countdowntxt = display.newText( time_remain, 300, 0, native.systemFont, 16 )
countdowntxt:setTextColor ( 255, 0, 0 )
local function countdown (e)
if (time_remain == 24) then
ready = true
end
time_remain =time_remain -1
print(time_remain)
countdowntxt.text = time_remain
if(time_remain == 0) then
time_up = true
end
end
local play_again = display.newImage( “restartbutton.png”, 50, 240)
play_again.isVisible = false
play_again.alpha = 0
play_again.scene = nil
gametimer = timer.performWithDelay ( 1000, countdown, 24 )
–> Add physics engine, start up the engine, and apply gravity
local physics = require (“physics”)
physics.start( )
– Set gravity to act “down” (ie, toward the bottom of the device)
physics.setGravity(0, 9.8)
– physics.setDrawMode(“hybrid”)
–> Add background image
local background = display.newImage(“grid_basketball.jpg”)
localGroup:insert(background)
–> Add ball to stage and position
local ball = display.newImage(“Basketball.png”)
ball.x = display.contentWidth/2
–> Turn ball into physics body
physics.addBody(ball, { bounce = 0.5, radius = 40, friction = 1.0 } )
localGroup:insert(ball)
–> Add ball2
local ball2 = display.newImage(“Basketball.png”)
ball2.x = ball.x - 105
physics.addBody(ball2, {bounce = 0.5, radius = 40, friction = 1.0 } )
localGroup:insert(ball2)
–> Add ball3
local ball3 = display.newImage(“Basketball.png”)
ball3.x = ball.x + 105
physics.addBody (ball3, {bounce = 0.5, radius = 40, friction = 1.0 } )
localGroup:insert(ball3)
system.activate( “multitouch” )
– Define wall graphics (rectangles)
local leftWall = display.newRect(0, 0, 0.1, display.contentHeight )
local rightWall = display.newRect(display.contentWidth, 0, 0.1, display.contentHeight)
local ceiling = display.newRect(0, 0, display.contentWidth, 0.1 )
– Turn wall graphics into physical bodies
physics.addBody( leftWall, “static”, { bounce = 0.1 } )
physics.addBody( rightWall, “static”, { bounce = 0.1 } )
physics.addBody(ceiling, “static”, { bounce = 0.1 } )
–> Add floor image and position
local floor = display.newImage(“floor.png”)
floor.y = display.contentHeight - floor.contentHeight/2
–> Turn floor into physics body
physics.addBody(floor, “static”, { bounce = 0.2, friction = 1.0 } )
localGroup:insert(floor)
– Define our touch event listner
function moveBall(event)
local ball = event.target
ball:applyLinearImpulse( 0, -0.3, event.x, event.y )
end
– Add the listener to our ball
ball:addEventListener(“touch”, moveBall)
ball2:addEventListener(“touch”, moveBall)
ball3:addEventListener(“touch”, moveBall)
–Saving/Loading Stuff
local ego = require “ego”
local saveFile = ego.saveFile
local loadFile = ego.loadFile
– Create score text
local score = 0
local scoreText = display.newText(score, 35, 0, native.systemFont, 16)
scoreText:setTextColor( 255, 255, 255 )
scoreText.text = "score: "…score
– Function to add to score and update scoreText
local function addToScore()
score = score + 1
scoreText.text = "score: "…score
end
–Load highscore value from file. (It will initally be a string.)
highscore = loadFile (“highscore.txt”)
–If the file is empty (this means it is the first time you’ve run the app) save it as 0
local function checkForFile ()
if highscore == “empty” then
highscore = 0
saveFile(“highscore.txt”, highscore)
end
end
checkForFile()
–Print the current highscore
print ("Highscore is: ", highscore)
local highscoreText = display.newText(highscore, 200, 0, native.systemFont, 16)
highscoreText:setTextColor( 255, 255, 0 )
highscoreText.text = "Highscore is: "…highscore
–When the app is quit (or simulator refreshed) save the new highscore
–(If score > highscore the data will not be changed)
local function onSystemEvent ()
if score > tonumber(highscore) then --We use tonumber as highscore is a string when loaded
saveFile(“highscore.txt”, score)
local highscoreText = display.newText(highscore, 200, 0, native.systemFont, 16)
highscoreText:setTextColor( 255, 255, 0)
highscoreText.text = "Highscore is: "…highscore
end
end
Runtime:addEventListener( “system”, onSystemEvent )
ball:addEventListener(“touch”, addToScore)
ball2:addEventListener(“touch”, addToScore)
ball3:addEventListener(“touch”, addToScore)
function changeScene (e)
if (e.phase == " ended" ) then
play_again.isVisible = true
if (e.target.scene) then
– Load game again
time_remain = 24
time_up = false
–Clear the game timer
gametimer = nil
end
end
end
play_again:addeventListener (“touch”, changeScene)
return localGroup
end[/code]
[import]uid: 189039 topic_id: 32537 reply_id: 129399[/import]