it doesn't work in device...

It happened to a weird problem. I’ve finished my game and checked running well in Simulator. There is no error and any warning.

However, when I ported it on device(nexus7 and galaxy note2), it cant load second scene in device.(First scene is menu screen, and Second scene is game screen)

This application is just 13MB. I think it is smaller than other many games. Why did it happen? Give me some advice. 

You must debug it and say what errors you have

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

Debug on device

Hi @janyjangjae, please read this blog post:

http://www.coronalabs.com/blog/2013/07/09/tutorial-basic-debugging/

It covers the basic debugging you need to solve this as well as offers some common problems you may be encountering.

Thanks, but I don’t know well how to use debugging if I input like this “adb logcat Corona:v *:s”, it shows ‘adb’ is not recognized as an internal or external command operable program or batch file.Let me know the details how to use debugging tool

However, I found a cause of error, it’s related size of image. the sprite sheet’s size is bigger than actual device size, no matter how small divided number.

If you installed adb then you must open command line and navigate to folder in which adb.exe is to execute commands.

You need to install the Android tools.  The blog post had this paragraph:
 

First, you have to install some free tools from Google called the Android Debug Bridge tools. For details on this, please see our Android Signing and Building guide and scroll to the “Debugging” section at the bottom.

With a link to take you to the guild that covers installing those tools.

You must debug it and say what errors you have

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

Debug on device

Hi @janyjangjae, please read this blog post:

http://www.coronalabs.com/blog/2013/07/09/tutorial-basic-debugging/

It covers the basic debugging you need to solve this as well as offers some common problems you may be encountering.

Thanks, but I don’t know well how to use debugging if I input like this “adb logcat Corona:v *:s”, it shows ‘adb’ is not recognized as an internal or external command operable program or batch file.Let me know the details how to use debugging tool

However, I found a cause of error, it’s related size of image. the sprite sheet’s size is bigger than actual device size, no matter how small divided number.

If you installed adb then you must open command line and navigate to folder in which adb.exe is to execute commands.

You need to install the Android tools.  The blog post had this paragraph:
 

First, you have to install some free tools from Google called the Android Debug Bridge tools. For details on this, please see our Android Signing and Building guide and scroll to the “Debugging” section at the bottom.

With a link to take you to the guild that covers installing those tools.