I’ve already debug but it doesn’t have any error and warning.
here is the code.
print (" ))))))))))))))))))))))))))))))))1 Memory = ", collectgarbage(“count”))
local storyboard = require( “storyboard” )
local physics = require(“physics”)
local sprite = require(“sprite”)
local physicsData = (require “shapedefs”).physicsData(1.0)
physics.start()
physics.setPositionIterations( 16 )
physics.setGravity(0, 0)
physics.setDrawMode(“normal”)
math.randomseed( os.time() )
collectgarbage()
print (" ))))))))))))))))))))))))))))))))2 Memory = ", collectgarbage(“count”))
local scene = storyboard.newScene()
local vars = {} – for timer
local debugNumber = 0
local score = 0
totalScore = 0
local distance = 0
local amountDistance = 0
local backgroundSpeed = 1
local enemySpeed = 1700
local enemySpawn = 1200
local car
local carMoveX = 0
local carSpeed = 50
local lives = {}
local numberOfLives = 3
local goalDistance = 3000
local sevenEleven
local sevenElevenFlag = false
local function either( … )
if #arg == 0 then return nil else return arg[math.random( #arg )] end
end
– [[explode function to express Explosion Effect]]
local explosions_Spritesheet = sprite.newSpriteSheet(“explosion.png”, 24, 23)
local explosions_Set = sprite.newSpriteSet(explosions_Spritesheet, 1, 8)
sprite.add ( explosions_Set, “explosions”, 1, 8, 500, 1 )
explosions_Spritesheet = nil
local function explode(x, y)
local newExplosion = sprite.newSprite(explosions_Set)
newExplosion:scale(6, 6)
newExplosion:prepare(“explosions”)
newExplosion.x = x; newExplosion.y = y
newExplosion.isVisible = true; newExplosion:play()
– audio.play( vars [“sndBlast”] )
– Sprite Destroy Listener
local function destroySprite(event)
if (event.phase == “end”) then
event.target:removeEventListener(“sprite”, destroySprite)
event.target:removeSelf ()
event.target = nil
end
end
newExplosion:addEventListener(“sprite”, destroySprite)
collectgarbage()
end
– [[moving background part
local Dirt_Movement_Spritesheet = sprite.newSpriteSheet(“Dirt_Movement_Spritesheet_2.png”, 1030, 600)
local Dirt_Movement_Set = sprite.newSpriteSet(Dirt_Movement_Spritesheet, 1, 4)
sprite.add(Dirt_Movement_Set, “Dirt_Movement”, 1, 4, 1000, 0)
Dirt_Movement_Spritesheet = nil
local Dirt_Movement = sprite.newSprite(Dirt_Movement_Set)
Dirt_Movement : prepare(“Dirt_Movement”)
Dirt_Movement : play()
Dirt_Movement.x = display.contentWidth * 0.5
Dirt_Movement.y = display.contentHeight * 0.6
– local Road_Texture_Spritesheet = sprite.newSpriteSheet(“Road_Texture_Spritesheet.png”, 1011, 478)
– local Road_Texture_Set = sprite.newSpriteSet(Road_Texture_Spritesheet, 1, 2)
– sprite.add(Road_Texture_Set, “Line_Movement”, 1, 2, 300, 0)
– Road_Texture_Spritesheet = nil
– local Road_Texture_Movement = sprite.newSprite(Road_Texture_Set)
– Road_Texture_Movement : prepare(“Line_Movement”)
– Road_Texture_Movement : play()
– Road_Texture_Movement.x = display.contentWidth * 0.5
– Road_Texture_Movement.y = display.contentHeight * 0.55
local Road_Movement_Spritesheet = sprite.newSpriteSheet(“Road_Movement_Spritesheet.png”, 997, 581)
local Road_Movement_Set = sprite.newSpriteSet(Road_Movement_Spritesheet, 1, 4)
sprite.add(Road_Movement_Set, “Road_Movement”, 1, 4, 1000, 0)
Road_Movement_Spritesheet = nil
local Road_Movement = sprite.newSprite(Road_Movement_Set)
Road_Movement : prepare(“Road_Movement”)
Road_Movement : play()
Road_Movement.x = display.contentWidth * 0.5
Road_Movement.y = display.contentHeight * 0.6
local Line_Movement_Spritesheet = sprite.newSpriteSheet(“Line_Movement_Spritesheet.png”, 60, 580)
local Line_Movement_Set = sprite.newSpriteSet(Line_Movement_Spritesheet, 1, 4)
sprite.add(Line_Movement_Set, “Line_Movement”, 1, 4, 500, 0)
Line_Movement_Spritesheet = nil
local Line_Movement = sprite.newSprite(Line_Movement_Set)
Line_Movement : prepare(“Line_Movement”)
Line_Movement : play()
Line_Movement.x = display.contentWidth * 0.5
Line_Movement.y = display.contentHeight * 0.63
local backgroundSpriteGroup = display.newGroup()
– createBackgroundSprite function to express background SpriteSheets ]]
local function createBackgroundSprite()
backgroundSpriteGroup : insert(Dirt_Movement)
backgroundSpriteGroup : insert(Road_Movement)
backgroundSpriteGroup : insert(Line_Movement)
– backgroundSpriteGroup : insert(Road_Texture_Movement)
end
– [[lives of cars part
local livesGroup = display.newGroup()
– createLives function to express lives of cars ]]
local function createLives()
for i=1, numberOfLives do
lives[i] = display.newImage( “Extralife.png”)
--lives[i] : setFillColor(math.random(0, 255), math.random(0, 255), math.random(0, 255))
lives[i].x = ( width - lives[i].contentWidth * 0.5 ) - (i * lives[i].contentWidth) + 80
lives[i].y = 80
--lives[i].alpha = 0.9
livesGroup : insert(lives[i])
end
collectgarbage()
end
– [[car objects part
local Car_Spritesheet = sprite.newSpriteSheet(“Car_Spritesheet.png”, 194, 208)
local Car_Set = sprite.newSpriteSet(Car_Spritesheet, 1, 2)
sprite.add(Car_Set, “car”, 1, 2, 350, 0)
Car_Spritesheet = nil
– createCar function to express car Object]]
local function createCar()
car = sprite.newSprite(Car_Set)
car.isSuper = false
car.isSize = false
car : prepare(“car”)
car : play()
car.x = centerWidth
car.y = display.contentHeight - (car.contentHeight * 0.5) - 20
car.myName = “car”
car.alpha = 0.7
car.hit = true
physics.addBody(car, “static”, physicsData:get(“C_2”))
function car:destroy()
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Car Memory = ", collectgarbage(“count”))
display.remove(self)
self = nil
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Car Memory = ", collectgarbage(“count”))
end
end
– [[createWall functiona to express limited boundary of being able to move car]]
local function createWall()
if(car.x < car.contentWidth * 0.5) then
car.x = car.contentWidth
elseif(car.x > width - car.contentWidth * 0.5) then
car.x = width - car.contentWidth
end
end
local function moveCar()
car.x = car.x + carMoveX
end
– [[controlOfSpeed function to express speed according to progress game]]
local function controlOfSpeed()
backgroundSpeed = backgroundSpeed + 0.0015
Dirt_Movement.timeScale = backgroundSpeed - 0.0005
Road_Movement.timeScale = backgroundSpeed - 0.0003
Line_Movement.timeScale = backgroundSpeed - 0.0001
car.timeScale = backgroundSpeed + 0.01
end
local function createSevenEleven()
sevenEleven = display.newImage( “sevenEleven.png” )
sevenEleven.x = - 1000
sevenEleven.y = - 1000
sevenEleven.myName = “sevenEleven”
– sevenEleven.x = display.contentWidth * 0.5
– sevenEleven.y = display.contentHeight * 0.22
function sevenEleven:destroy()
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sevenEleven Memory = ", collectgarbage(“count”))
display.remove(self)
self = nil
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< sevenEleven Memory = ", collectgarbage(“count”))
end
end
– [[updateScore function to express going up score an distance]]
local function updateScore()
amountDistance = amountDistance + 1
if(amountDistance % 10 == 0) then
if(distance + 1 <= goalDistance) then
distance = distance + 1
end
end
score = distance * 10
vars[“distanceText”].text = "Distance : " … distance
vars[“scoreText”].text = "Score : " … score
if(distance == goalDistance and sevenElevenFlag ==false) then
sevenElevenFlag = true
if(vars[“timerEnemy”] ~= nil) then
timer.cancel( vars[“timerEnemy”] )
end
if(vars[“timerItem”] ~= nil) then
timer.cancel( vars[“timerItem”] )
end
sevenEleven:scale(0.3, 0.3)
sevenEleven.x = display.contentWidth * 0.5
sevenEleven.y = display.contentHeight * 0.22
physics.addBody(sevenEleven, “dynamic”, physicsData:get(“7-11”))
local function arrivalGoal()
carSpeed = 0
enemySpeed = 0
Dirt_Movement : pause()
Road_Movement : pause()
Line_Movement : pause()
car:pause()
vars[“carTran”] =
transition.to(car,
{time = 2000,
x = display.contentWidth * 0.5,
y = display.contentHeight * 0.3,
alpha = 0.0,
xScale = 0.3, yScale = 0.3})
end
vars[“sevenElevenTran”] =
transition.to(sevenEleven,
{time = 3000,
y = display.contentHeight * 0.3,
xScale = 1.0, yScale = 1.0, onComplete = arrivalGoal})
end
end
local function update()
createWall()
moveCar()
controlOfSpeed()
updateScore()
collectgarbage()
end
Runtime:addEventListener(“enterFrame”, update)
– [[directionCar functiont to express dircection of car, like left side or right side]]
local function directionCar(event)
if(event.phase == “began”) then
if(event.x <= car.x) then
– print("x : " … event.x)
– print("y : " … event.y)
carMoveX = carSpeed * -1
else
– print("x : " … event.x)
– print("y : " … event.y)
carMoveX = carSpeed
end
end
if(event.phase == “ended”) then
carMoveX = 0
end
end
Runtime:addEventListener(“touch”, directionCar)
– [[controlOfEnemySpeed function to express control Enemy speed & spawn as according to progress game]]
local function controlOfEnemySpeed()
if(enemySpeed >= 400) then
enemySpeed = enemySpeed - 0.2
– print("enemySpeed : " … enemySpeed)
end
if(enemySpawn >= 1) then
enemySpawn = enemySpawn - 0.9
– print("enemySpawn : " … enemySpawn)
end
if(enemySpeed <= 400 and enemySpawn <= 1 ) then
timer.cancel(vars[“enemyControlTimer”])
end
end
vars[“enemyControlTimer”] = timer.performWithDelay( 1, controlOfEnemySpeed, 0 )
– [[gameOver function to express when the game is over]]
local gameOverTxt
local gameOverGroup = display.newGroup()
local function gameOver(carX, carY)
local x, y = carX, carY
carSpeed = 0
enemySpeed = 0
Dirt_Movement : pause()
Road_Movement : pause()
Line_Movement : pause()
car:pause()
transition.to(car, {
time = 0,
x = -500,
y = -500
})
local CM_Death_Sprite = display.newImage( “CM_Death_Sprite.png”)
CM_Death_Sprite.x = x
CM_Death_Sprite.y = y
vars[“tranTimer”] = transition.to(CM_Death_Sprite, {
time = 1000,
alpha = 0,
x = width + 200,
y = carY - 200
})
gameOverTxt = display.newText(“GAME OVER”, 0, 0, native.systemFont , 100)
gameOverTxt.x = centerWidth
gameOverTxt.y = centerHeight
gameOverGroup : insert(gameOverTxt)
function gameOverTxt:touch(event)
if(event.phase == “ended”) then
transition.cancel( vars[“tranTimer”] )
storyboard.gotoScene( “score”, “fade”, 500 )
– print(“gameOverTxt Removed”)
return true
end
end
gameOverTxt : addEventListener(“touch”, gameOverTxt)
if(vars[“timerEnemy”] ~= nil) then
timer.cancel( vars[“timerEnemy”] )
end
if(vars[“timerItem”] ~= nil) then
timer.cancel( vars[“timerItem”] )
end
Runtime:removeEventListener(“touch”, directionCar)
Runtime:removeEventListener(“enterFrame”, update)
collectgarbage()
end
– [[onCollision function to express collision that the car collide with enemy]]
local function onCollision(event)
--debugNumber = debugNumber + 1
--print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> onCollision Memory = ", collectgarbage(“count”))
--print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> onCollision" … debugNumber)
if(event.object1.myName == “car” and event.object2.myName == “enemy” and event.object1.isSuper == false) then
event.object1.isSuper = true
event.object1.alpha = 0.1
numberOfLives = numberOfLives - 1
– createLives()
--numberOfLives = numberOfLives - 1
– print("--------------------------- : " … collectgarbage(“count”))
display.remove(lives[numberOfLives + 1])
explode(event.object1.x, event.object2.y)
– print("---------------------------+++++++++++++++++++++++++++++++++++++ : " … collectgarbage(“count”))
print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>numberOfLives : " … numberOfLives)
local function superChange()
event.object1.alpha = 1.0
event.object1.isSuper = false
end
vars[“superModeTimer”] = timer.performWithDelay(2000, superChange, 1 )
– [[slow car]]
– elseif(event.object1.myName == “car” and event.object2.myName == “shrink”) then
– event.object2:destroy()
– carSpeed = 1
– local function slowCar()
– carSpeed = 50
– end
– timer.performWithDelay( 1000, slowCar, 1 )
elseif(event.object1.myName == “car” and event.object2.myName == “shrink” and event.object1.isSize == false) then
event.object1.isSize = true
event.object2:destroy()
vars[“shrinkTimer1”] = timer.performWithDelay(0,
function()
physics.removeBody(event.object1)
physics.addBody(car, “static”, physicsData:get(“shirinkCar”))
car:scale(0.5, 0.5)
car.y = display.contentHeight - (car.contentHeight * 0.5) - 20
end, 1)
vars[“shrinkTimer2”] = timer.performWithDelay(3000,
function()
physics.removeBody(event.object1)
physics.addBody(car, “static”, physicsData:get(“C_2”))
car:scale(2.0, 2.0)
car.y = display.contentHeight - (car.contentHeight * 0.5) - 20
car.isSize = false
end, 1 )
elseif(event.object1.myName == “car” and event.object2.myName == “grow” and event.object1.isSize == false) then
event.object1.isSize = true
event.object2:destroy()
vars[“growTimer1”] = timer.performWithDelay(0,
function()
physics.removeBody(event.object1)
physics.addBody(car, “static”, physicsData:get(“growCar”))
car:scale(2.0, 2.0)
car.y = display.contentHeight - (car.contentHeight * 0.5) - 20
end, 1)
vars[“growTimer2”] = timer.performWithDelay(3000,
function()
physics.removeBody(event.object1)
physics.addBody(car, “static”, physicsData:get(“C_2”))
car:scale(0.5, 0.5)
car.y = display.contentHeight - (car.contentHeight * 0.5) - 20
car.isSize = false
end, 1 )
– [[unbeatable mode]]
elseif(event.object1.myName == “car” and event.object2.myName == “unbeatable”) then
event.object2:destroy()
vars[“unbeatable1”] =
timer.performWithDelay(0, function() event.object1.isBodyActive = false end, 1 )
vars[“unbeatable2”] =
timer.performWithDelay(3000, function() event.object1.isBodyActive = true end, 1 )
elseif(event.object1.myName == “car” and event.object2.myName == “sevenEleven”) then
totalScore = score
vars[“sevenElevenTimer”] =
timer.performWithDelay(0, function() event.object2.isBodyActive = false end, 1 )
if(vars[“sevenElevenTran”] ~= nil) then
transition.cancel( vars[“sevenElevenTran”] )
end
if(vars[“carTran”] ~= nil) then
transition.cancel( vars[“carTran”] )
end
Runtime:removeEventListener(“touch”, directionCar)
Runtime:removeEventListener(“enterFrame”, update)
collectgarbage()
storyboard.gotoScene( “ending”, “fade”, 500 )
end
if(numberOfLives <= 0) then
gameOver(event.object1.x, event.object1.y)
totalScore = score
end
collectgarbage()
--print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< onCollision Memory = ", collectgarbage(“count”))
--print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< onCollision" … debugNumber)
end
–[[enemy part]]
local Vmonster_Spritesheet = sprite.newSpriteSheet(“Vmonster_Spritesheet.png”, 272, 208)
local Vmonster_Set = sprite.newSpriteSet(Vmonster_Spritesheet, 1, 2)
sprite.add(Vmonster_Set, “monster”, 1, 2, 200, 0)
Vmonster_Spritesheet = nil
local Syringe_Spritesheet = sprite.newSpriteSheet(“Syringe_Spritesheet.png”, 180, 244)
local Syringe_Set = sprite.newSpriteSet(Syringe_Spritesheet, 1, 2)
sprite.add(Syringe_Set, “monster”, 1, 2, 200, 0)
Syringe_Spritesheet = nil
local Joint_Spritesheet = sprite.newSpriteSheet(“Joint_Spritesheet.png”, 100, 244)
local Joint_Set = sprite.newSpriteSet(Joint_Spritesheet, 1, 2)
sprite.add(Joint_Set, “monster”, 1, 2, 200, 0)
Joint_Spritesheet = nil
local Dmonster_Spritesheet = sprite.newSpriteSheet(“Dmonster_spritesheet.png”, 136, 244)
local Dmonster_Set = sprite.newSpriteSet(Dmonster_Spritesheet, 1, 2)
sprite.add(Dmonster_Set, “monster”, 1, 2, 200, 0)
Dmonster_Spritesheet = nil
local Bottle_Spritesheet = sprite.newSpriteSheet(“Bottle_Spritesheet.png”, 178, 244)
local Bottle_Set = sprite.newSpriteSet(Bottle_Spritesheet, 1, 2)
sprite.add(Bottle_Set, “monster”, 1, 2, 200, 0)
Bottle_Spritesheet = nil
local Beercan_Spritesheet = sprite.newSpriteSheet(“Beercan_spritesheet.png”, 194, 244)
local Beercan_Set = sprite.newSpriteSet(Beercan_Spritesheet, 1, 2)
sprite.add(Beercan_Set, “monster”, 1, 2, 200, 0)
Beercan_Spritesheet = nil
–[[newEnemy function to express being appear enemy and disappear]]
local function newEnemy()
local file = either(Vmonster_Set, Syringe_Set, Joint_Set, Dmonster_Set, Bottle_Set, Beercan_Set)
local enemy = sprite.newSprite(file)
enemy.myName = “enemy”
enemy : prepare(“monster”)
enemy : play()
local physicsName
if file == Vmonster_Set then
physicsName = “V_1”
elseif file == Syringe_Set then
physicsName = “S_2”
elseif file == Joint_Set then
physicsName = “J_2”
elseif file == Dmonster_Set then
physicsName = “DM_1”
elseif file == Bottle_Set then
physicsName = “Bo_2”
elseif file == Beercan_Set then
physicsName = “Be_1”
end
physics.addBody(enemy, “dynamic”, physicsData:get(physicsName))
if math.random(2) == 1 then
enemy.x = math.random(400, 500)
else
enemy.x = math.random(520, 620)
end
enemy.y = 180
function enemy:outOfScreen( )
if(enemy.y >= height + 100) then
enemy:destroy()
end
end
Runtime:addEventListener(“enterFrame”, enemy.outOfScreen)
function enemy:destroy()
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Enemy Memory = ", collectgarbage(“count”))
display.remove(self)
self = nil
collectgarbage()
Runtime:removeEventListener(“enterFrame”, enemy.outOfScreen)
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Enemy Memory = ", collectgarbage(“count”))
end
collectgarbage()
return enemy
end
local function newItem()
local file = either(“shrink.png”, “grow.png”, “unbeatable.png”)
local item = display.newImage( file )
local physicsName
if(tostring(file) == “shrink.png”) then
item.myName = “shrink”
physicsName = “shrink”
elseif (tostring(file) == “grow.png”) then
item.myName = “grow”
physicsName = “shrink”
elseif (tostring(file) == “unbeatable.png”) then
item.myName = “unbeatable”
physicsName = “unbeatable”
end
physics.addBody(item, “dynamic”, physicsData:get(physicsName))
if math.random(2) == 1 then
item.x = math.random(400, 500)
else
item.x = math.random(520, 620)
end
item.y = 180
function item:outOfScreen()
if(item.y >= height + 100) then
item:destroy()
end
end
Runtime:addEventListener(“enterFrame”, item.outOfScreen)
function item:destroy()
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Item Memory = ", collectgarbage(“count”))
display.remove(self)
self = nil
collectgarbage()
Runtime:removeEventListener(“enterFrame”, item.outOfScreen)
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Item Memory = ", collectgarbage(“count”))
end
collectgarbage()
return item
end
function scene:createScene( event )
local group = self.view
– print(event.params.sobriety)
carSpeed = carSpeed * event.params.sobriety * 0.01
print (">>>>>>>>>>>>>>>>>>>>>>>>> carSpeed : ", carSpeed)
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> createScene Memory = ", collectgarbage(“count”))
local backgroundSky = display.newImage( “sky.png” )
backgroundSky.x = display.contentWidth * 0.5
backgroundSky.y = display.contentHeight * 0.5
group : insert(backgroundSky)
local backgroundMountain = display.newImage(“mountainz.png”)
backgroundMountain.x = display.contentWidth * 0.5
backgroundMountain.y = display.contentHeight * 0.5
group : insert(backgroundMountain)
local backgroundDirt = display.newImage(“dirt.png” )
backgroundDirt.x = display.contentWidth * 0.5
backgroundDirt.y = display.contentHeight * 0.5
group : insert(backgroundDirt)
local backgroundRoad = display.newImage(“road.png”)
backgroundRoad.x = display.contentWidth * 0.5
backgroundRoad.y = display.contentHeight * 0.5
group : insert(backgroundRoad)
local scoreboard = display.newImage( “scoreboard.png” )
scoreboard.x = display.contentWidth * 0.5
scoreboard.y = display.contentHeight * 0.5
group : insert(scoreboard)
vars[“scoreText”]= display.newText("Score : " … score, 95, 90, native.systemFont, 35)
vars[“scoreText”]:setReferencePoint(display.CenterLeftReferencePoint)
group : insert(vars[“scoreText”])
vars[“distanceText”] = display.newText("Distance : " … distance, 80, 40, native.systemFont, 35)
vars[“distanceText”]:setReferencePoint(display.CenterLeftReferencePoint)
group : insert(vars[“distanceText”])
createBackgroundSprite()
group : insert(backgroundSpriteGroup)
createCar()
group : insert(car)
createLives()
group : insert(livesGroup)
group : insert(gameOverGroup)
createSevenEleven()
group : insert(sevenEleven)
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< createScene Memory = ", collectgarbage(“count”))
end
function scene:enterScene( event )
local group = self.view
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> eneterScene Memory = ", collectgarbage(“count”))
local function generateEnemy()
local enemy = newEnemy()
local tran = math.random(1, 5)
local temp
if(tran == 1) then
temp = easing.inExpo
else
temp = easing.linear
end
local pointOfendX
pointOfendX = math.random(10, 1000)
enemy : scale(0.2, 0.2)
transition.to(enemy, {
time = enemySpeed,
transition = temp,
xScale = 2.0,
yScale = 2.0,
x = pointOfendX,
y = height + 200
})
end
local function generateItem()
local item = newItem()
local tran = math.random(1, 5)
local temp
if(tran == 1) then
temp = easing.inExpo
else
temp = easing.linear
end
local pointOfendX
pointOfendX = math.random(10, 1000)
item : scale(0.2, 0.2)
vars[“itemTran”] = transition.to(item, {
time = enemySpeed,
transition = temp,
xScale = 1.2,
yScale = 1.2,
x = pointOfendX,
y = height + 200
})
end
vars[“timerEnemy”] = timer.performWithDelay (enemySpawn, generateEnemy, 0)
vars[“timerItem”] = timer.performWithDelay (enemySpawn * 5, generateItem, 0)
Runtime:addEventListener(“collision”, onCollision)
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< enterScene Memory = ", collectgarbage(“count”))
end
function scene:exitScene( event )
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> exitScene Memory = ", collectgarbage(“count”))
collectgarbage()
if(vars[“superModeTimer”] ~= nil) then
timer.cancel(vars[“superModeTimer”])
end
if(vars[“enemyControlTimer”] ~= nil) then
timer.cancel(vars[“enemyControlTimer”])
end
if(vars[“shrinkTimer1”] ~= nil) then
timer.cancel(vars[“shrinkTimer1”])
end
if(vars[“shrinkTimer2”] ~= nil) then
timer.cancel(vars[“shrinkTimer2”])
end
if(vars[“growTimer1”] ~= nil) then
timer.cancel(vars[“growTimer1”])
end
if(vars[“growTimer2”] ~= nil) then
timer.cancel(vars[“growTimer2”])
end
if(vars[“unbeatable1”] ~= nil) then
timer.cancel(vars[“unbeatable1”])
end
if(vars[“unbeatable2”] ~= nil) then
timer.cancel(vars[“unbeatable2”])
end
if(vars[“sevenElevenTimer”] ~= nil) then
timer.cancel(vars[“sevenElevenTimer”])
end
if(vars[“tranTimer”] ~= nil) then
transition.cancel( vars[“tranTimer”] )
end
Runtime:removeEventListener(“collision”, onCollision)
if(gameOverTxt ~= nil) then
gameOverTxt : removeEventListener(“touch”, gameOverTxt)
end
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< exitScene Memory = ", collectgarbage(“count”))
end
function scene:destroyScene( event )
local group = self.view
print (" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> destroyScene Memory = ", collectgarbage(“count”))
physics.stop()
backgroundSpriteGroup : removeSelf()
backgroundSpriteGroup = nil
gameOverGroup : removeSelf()
gameOverGroup = nil
Dirt_Movemet_Set = nil
Road_Movement_Set = nil
Line_Movement_Set = nil
Dirt_Movement = nil
Road_Movement = nil
Line_Movement = nil
– CM_Death_Sprite : removeSelf()
CM_Death_Sprite = nil
– gameOverTxt : removeSelf()
gameOverTxt = nil
explosions_Set = nil
vars = nil
collectgarbage()
print (" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< destroyScene Memory = ", collectgarbage(“count”))
end
scene:addEventListener( “createScene”, scene )
scene:addEventListener( “enterScene”, scene )
scene:addEventListener( “exitScene”, scene )
scene:addEventListener( “destroyScene”, scene )
return scene