_W = display.contentWidth
_H = display.contentHeight
module ( ... , package.seeall ) 
function new( )
	local localGroup = display.newGroup ( ) 
	
	local time_remain = 24
	time_up = false
	ready = false
	
	local time_remain = 24
	
	-- Display countdown text 
	local countdowntxt = display.newText( time_remain, 300, 11, native.systemFont, 16 )
	countdowntxt:setTextColor ( 255, 0, 0 )
 	
 	--Add funtion for countdown
	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
 	
	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) 
	
	local bounce = audio.loadSound("bbounce.mp3")
	
    --physics.setDrawMode("hybrid")
	
	local function onCollision(event)
		if event.phase == "began" then
		audio.play(bounce)
			if event.object1.name == "floor" then
				score = 0
			else 
				addToScore()
			end
			print (event.object1.name.." and "..event.object2.name)
		end	
	end
	-->  Add background image 
	local background = display.newImage("wp1.png")  
	background.x = display.contentCenterX
	background.y = display.contentCenterY
	
	localGroup:insert(background)	 
	
	--> Add ball to stage and position
	local ball = display.newImage("Basketball.png")
	ball.x = display.contentWidth/2
	ball.y = display.contentHeight/2
	--> Turn ball into physics body
	physics.addBody(ball, { bounce = 0.5, radius = 40, friction = 1.0 } )
	ball.name = "ball"
 	
 	localGroup:insert(ball)
 	
 	--> Add ball2
	local ball2 = display.newImage("Basketball.png")
	ball2.x = ball.x - 105
	ball2.y = display.contentHeight/2
	physics.addBody(ball2, {bounce = 0.5, radius = 40, friction = 1.0 } )
	ball2.name = "ball 2"
	
	localGroup:insert(ball2)
	
    --> Add ball3
	local ball3 = display.newImage("Basketball.png")
	ball3.x = ball.x + 105
	ball3.y = display.contentHeight/2
	physics.addBody (ball3, {bounce = 0.5, radius = 40, friction = 1.0 } )
	ball3.name = "ball 3"
	
	localGroup:insert(ball3)
	 system.activate( "multitouch" )
	-- Define wall graphics (rectangles)
	local leftWall = display.newRect(0, 0, 0.1, display.contentHeight )
	leftWall.y = display.contentCenterY
	leftWall.name = "left wall"
	local rightWall = display.newRect(display.contentWidth, 0, 0.1,  display.contentHeight)
	rightWall.y = display.contentCenterY
	rightWall.name = "right wall"
	local ceiling = display.newRect(0, 0, display.contentWidth, 0.1  )
	ceiling.x = display.contentCenterX
	ceiling.name = "ceiling"
	-- 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
	floor.x = display.contentCenterX
	floor.name = "floor"
	
	--> 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, 220, 11, 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, 80, 11, 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 )
	
	-- Add listeners to balls so it will add to score when they are touch
	ball:addEventListener("touch", addToScore)
	ball2:addEventListener("touch", addToScore)
	ball3:addEventListener("touch", addToScore)
	
        Runtime:addEventListener("collision", onCollision)
	Runtime:addEventListener("collision", addToScore)
	
	
	local function checkTime(e)
 		 if time_remain == 0 then
 		 	Runtime:removeEventListener("enterFrame", checkTime)
   	   	director:changeScene("gameover")
 		 end
	end 
	Runtime:addEventListener("enterFrame", checkTime)
	return localGroup
end
That is all my code from game.lua. It all worked good and without problems. Last function I did is onCollision first audio and print options and both worked. When I added if statement with floor problems started.