来自另一个屏幕后,我的场景没有重新加载所有变量

时间:2015-05-29 13:11:14

标签: corona

我有2个屏幕,一个是level1场景&另一个是level2场景,玩家在level1场景中死亡后,所有变量都被销毁了。已加载level2场景,我在level2中有一个触摸侦听器,会重新加载level1,但问题是level1中的所有变量都没有重新初始化&相反总是调用scene:hide方法,我无法弄清楚我的代码有什么问题,下面是我的代码

level1 code

--function to deal obs collision
local function obscols( self,event )
    if(event.phase=="began") then 
        --print(event.other.myName)
        if (self.myName=='stack1') then
            obs[1].isVisible=false
            obs[1].isAlive=false

        elseif (self.myName=='stack2') then
            obs[2].isVisible=false
            obs[2].isAlive=false

        elseif (self.myName=='stack3') then
            obs[3].isVisible=false
            obs[3].isAlive=false

        elseif (self.myName=='stack4') then
            obs[4].isVisible=false
            obs[4].isAlive=false

        elseif (self.myName=='stack5') then
            obs[5].isVisible=false
            obs[5].isAlive=false

        elseif (self.myName=='stack6') then
            obs[6].isVisible=false
            obs[6].isAlive=false

        elseif (self.myName=='stack7') then
            obs[7].isVisible=false
            obs[7].isAlive=false

        elseif (self.myName=='stack8') then
            obs[8].isVisible=false
            obs[8].isAlive=false

        elseif (self.myName=='stack9') then
            obs[9].isVisible=false
            obs[9].isAlive=false

        elseif (self.myName=='stack10') then
            obs[10].isVisible=false
            obs[10].isAlive=false

        elseif (self.myName=='stack11') then
            obs[11].isVisible=false
            obs[11].isAlive=false

        elseif (self.myName=='stack12') then
            obs[12].isVisible=false
            obs[12].isAlive=false

        elseif (self.myName=='stack13') then
            obs[13].isVisible=false
            obs[13].isAlive=false

        elseif (self.myName=='stack14') then
            obs[14].isVisible=false
            obs[14].isAlive=false

        elseif (self.myName=='stack15') then
            obs[15].isVisible=false
            obs[15].isAlive=false

        elseif (self.myName=='stack16') then
            obs[16].isVisible=false
            obs[16].isAlive=false

        elseif (self.myName=='stack17') then
            obs[17].isVisible=false
            obs[17].isAlive=false

        elseif (self.myName=='stack18') then
            obs[18].isVisible=false
            obs[18].isAlive=false

        elseif (self.myName=='stack19') then
            obs[19].isVisible=false
            obs[19].isAlive=false

        elseif (self.myName=='stack20') then
            obs[20].isVisible=false
            obs[20].isAlive=false

        elseif (self.myName=='stack21') then
            obs[21].isVisible=false
            obs[21].isAlive=false

        elseif (self.myName=='stack22') then
            obs[22].isVisible=false
            obs[22].isAlive=false

        elseif (self.myName=='stack23') then
            obs[23].isVisible=false
            obs[23].isAlive=false

        elseif (self.myName=='stack24') then
            obs[24].isVisible=false
            obs[24].isAlive=false

        --coins handling

        elseif (event.other.myName=='coin_num1') then
            coinsg[1].isVisible=false
            coinsg[1].isAlive=false

        elseif (event.other.myName=='coin_num2') then
            coinsg[2].isVisible=false
            coinsg[2].isAlive=false

        elseif (event.other.myName=='coin_num3') then
            coinsg[3].isVisible=false
            coinsg[3].isAlive=false

        elseif (event.other.myName=='coin_num4') then
            coinsg[4].isVisible=false
            coinsg[4].isAlive=false

        elseif (event.other.myName=='coin_num5') then
            coinsg[5].isVisible=false
            coinsg[5].isAlive=false

        elseif (event.other.myName=='coin_num6') then
            coinsg[6].isVisible=false
            coinsg[6].isAlive=false

        elseif (event.other.myName=='coin_num7') then
            coinsg[7].isVisible=false
            coinsg[7].isAlive=false

        elseif (event.other.myName=='coin_num8') then
            coinsg[8].isVisible=false
            coinsg[8].isAlive=false

        elseif (event.other.myName=='coin_num9') then
            coinsg[9].isVisible=false
            coinsg[9].isAlive=false

        elseif (event.other.myName=='coin_num10') then
            coinsg[10].isVisible=false
            coinsg[10].isAlive=false

        elseif (event.other.myName=='coin_num11') then
            coinsg[11].isVisible=false
            coinsg[11].isAlive=false

        elseif (event.other.myName=='coin_num12') then
            coinsg[12].isVisible=false
            coinsg[12].isAlive=false

        elseif (event.other.myName=='coin_num13') then
            coinsg[13].isVisible=false
            coinsg[13].isAlive=false

        elseif (event.other.myName=='coin_num14') then
            coinsg[14].isVisible=false
            coinsg[14].isAlive=false

        elseif (event.other.myName=='coin_num15') then
            coinsg[15].isVisible=false
            coinsg[15].isAlive=false

        elseif (event.other.myName=='coin_num16') then
            coinsg[16].isVisible=false
            coinsg[16].isAlive=false

        elseif (event.other.myName=='coin_num17') then
            coinsg[17].isVisible=false
            coinsg[17].isAlive=false

        elseif (event.other.myName=='coin_num18') then
            coinsg[18].isVisible=false
            coinsg[18].isAlive=false

        elseif (event.other.myName=='coin_num19') then
            coinsg[19].isVisible=false
            coinsg[19].isAlive=false

        elseif (event.other.myName=='coin_num20') then
            coinsg[20].isVisible=false
            coinsg[20].isAlive=false

        elseif (event.other.myName=='coin_num21') then
            coinsg[21].isVisible=false
            coinsg[21].isAlive=false

        elseif (event.other.myName=='coin_num22') then
            coinsg[22].isVisible=false
            coinsg[22].isAlive=false

        elseif (event.other.myName=='coin_num23') then
            coinsg[23].isVisible=false
            coinsg[23].isAlive=false

        elseif (event.other.myName=='coin_num24') then
            coinsg[24].isVisible=false
            coinsg[24].isAlive=false
        end
        --composer.gotoScene( "level2",{ effect = "fade", time = 3000 }  )
    end
end

--function to move tiles 
local function movet(event)
    local tDelta = event.time - tPrevious
    tPrevious = event.time

    local xOffset = ( 0.05 * tDelta )

    bbgtile.x=bbgtile.x-xOffset*bgspeed
    bgtile.x=bgtile.x-xOffset*bgspeed

    rtile.x=rtile.x-xOffset*rspeed
    rrtile.x=rrtile.x-xOffset*rspeed

    if bgtile.x < -480 + bgtile.width / 2 then
        bgtile:translate(480*2 , 0)

    elseif bbgtile.x < -480 + bbgtile.width / 2 then
        bbgtile:translate(480*2 , 0)

    elseif rtile.x<-480 +rtile.width / 2 then
         rtile:translate( 480*2, 0 )
    elseif rrtile.x<-480 + rrtile.width / 2 then
        rrtile:translate( 480*2, 0 )
    end
end

--function to deal coins group pooling
local function getcoin()
    for j=1, #coinsg do
        if not coinsg[j].isAlive then
            return coinsg[j]
        end
    end
    return nil
end


--function to deal ob1 group pooling
local function getobs()
    local somerand=math.random( 1,24 )
    --calling ob1 from pool
    for i=1, #obs do
        if not obs[somerand].isAlive then
            return obs[somerand]
        end
    end
    return nil
end

-- --independent coin spawning function
local function spcoin()
    local c_elem = require("mydata")
    c_elem.new=getcoin()
    if(c_elem.new~=nil) then
        c_elem.new.isVisible=true
        c_elem.new.isAlive=true
        c_elem.new.isBodyActive=true
        c_elem.new.x=350
        c_elem.new.y=140
        --adding event listener for each coin
        c_elem.new:setLinearVelocity(-100,0)
        c_elem.new.collision=cclean
        c_elem.new:addEventListener("collision",c_elem.new)
    end
end

--independent obstacles spawning function
local function spobs()
    local obs_elem = require("mydata")
    obs_elem.new=getobs()
    if(obs_elem.new~=nil) then
        obs_elem.new.isVisible=true
        obs_elem.new.isAlive=true
        obs_elem.new.isBodyActive=true
        obs_elem.new.isFixedRotation=true
        obs_elem.new.x=math.random( 320,380 )
        obs_elem.new.y=252
        --adding event listener for each coin
        obs_elem.new:setLinearVelocity(-250,0)
        obs_elem.new.collision=obscols
        obs_elem.new:addEventListener("collision",obs_elem.new)
    end
end

--tile speed controlling function
local function setspeed( event )
    if mytime==120 then
        bgspeed=bgspeed+0.05
        rspeed=rspeed+0.5
    elseif mytime>140 then
        mytime=0
    end
end

-- --function to decide obstacle spawning
local function obdecide(event)
    if(shut==0) then
        if (mytime==100) then
            spobs()
        elseif (mytime>100) then
            mytime=0
        end
    end
end

--function to spawn coins
local function cdecide(event)
    if(shut==0) then
        if(ctimer==15) then
            spcoin()
        elseif(ctimer==30) then
            spcoin()
        elseif(ctimer==45) then
            spcoin()
        elseif(ctimer==60) then
            spcoin()
        elseif(ctimer==75) then
            spcoin() 
        elseif(ctimer>90) then
            ctimer=0
        end
    end
end

local ovtimer=0
--game update loop
local function move(event)
    if(shut==0) then
        ctimer=ctimer+1
        mytime=mytime+1
        --setspeed(event)
        movet(event)
        obdecide(event)
        cdecide(event)
    elseif(shut==1) then
        --ovtimer=ovtimer+1
        --print(ovtimer)
        --if(ovtimer==200) then
            --allclean(event)
        --elseif(ovtimer>200) then
        --composer.removeScene("level1")
        composer.gotoScene("level2")
        --end
    end
end

--player collision event with base & obstacles
local function colls(self,event)
    if(event.phase=="began") then
        --print(self.myName)
        --print(event.other.myName)
        if(self.myName=="hero" and event.other.myName=="base") then
            player:setSequence("run")
            player:play()
            bird:play()
            allow=1
        else
            --handle player death function
            shut=1
            print("player dead")
            --composer.gotoScene("level2")
        end
    end
end

--coin collision with bird
local function cclean(self,event)
    if(event.phase=="began") then
        --print("got here")
        --print(event.other.myName)
        if (event.other.myName=='coin_num1') then
            coinsg[1].isVisible=false
            coinsg[1].isAlive=false

        elseif (event.other.myName=='coin_num2') then
            coinsg[2].isVisible=false
            coinsg[2].isAlive=false

        elseif (event.other.myName=='coin_num3') then
            coinsg[3].isVisible=false
            coinsg[3].isAlive=false

        elseif (event.other.myName=='coin_num4') then
            coinsg[4].isVisible=false
            coinsg[4].isAlive=false

        elseif (event.other.myName=='coin_num5') then
            coinsg[5].isVisible=false
            coinsg[5].isAlive=false

        elseif (event.other.myName=='coin_num6') then
            coinsg[6].isVisible=false
            coinsg[6].isAlive=false

        elseif (event.other.myName=='coin_num7') then
            coinsg[7].isVisible=false
            coinsg[7].isAlive=false

        elseif (event.other.myName=='coin_num8') then
            coinsg[8].isVisible=false
            coinsg[8].isAlive=false

        elseif (event.other.myName=='coin_num9') then
            coinsg[9].isVisible=false
            coinsg[9].isAlive=false

        elseif (event.other.myName=='coin_num10') then
            coinsg[10].isVisible=false
            coinsg[10].isAlive=false

        elseif (event.other.myName=='coin_num11') then
            coinsg[11].isVisible=false
            coinsg[11].isAlive=false

        elseif (event.other.myName=='coin_num12') then
            coinsg[12].isVisible=false
            coinsg[12].isAlive=false

        elseif (event.other.myName=='coin_num13') then
            coinsg[13].isVisible=false
            coinsg[13].isAlive=false

        elseif (event.other.myName=='coin_num14') then
            coinsg[14].isVisible=false
            coinsg[14].isAlive=false

        elseif (event.other.myName=='coin_num15') then
            coinsg[15].isVisible=false
            coinsg[15].isAlive=false

        elseif (event.other.myName=='coin_num16') then
            coinsg[16].isVisible=false
            coinsg[16].isAlive=false

        elseif (event.other.myName=='coin_num17') then
            coinsg[17].isVisible=false
            coinsg[17].isAlive=false

        elseif (event.other.myName=='coin_num18') then
            coinsg[18].isVisible=false
            coinsg[18].isAlive=false

        elseif (event.other.myName=='coin_num19') then
            coinsg[19].isVisible=false
            coinsg[19].isAlive=false

        elseif (event.other.myName=='coin_num20') then
            coinsg[20].isVisible=false
            coinsg[20].isAlive=false

        elseif (event.other.myName=='coin_num21') then
            coinsg[21].isVisible=false
            coinsg[21].isAlive=false

        elseif (event.other.myName=='coin_num22') then
            coinsg[22].isVisible=false
            coinsg[22].isAlive=false

        elseif (event.other.myName=='coin_num23') then
            coinsg[23].isVisible=false
            coinsg[23].isAlive=false

        elseif (event.other.myName=='coin_num24') then
            coinsg[24].isVisible=false
            coinsg[24].isAlive=false
        end
    end
end


--function to make player jump when screen is tapped
local function jump(event)
    if allow==1 and shut==0 then
        player:setLinearVelocity( 0, -400 )
        player:setSequence("lup")
        bird:setLinearVelocity(0,-400)
        bird:pause()
        allow=0
    end
    return true
end


function scene:create( event )
    local  sceneGroup=self.view
    print("i got called")
    -- important libs loading

    physics=require( "physics" )
    tPrevious = system.getTimer()
    --game variables
    shut=0
    mytime=0
    ctimer=0
    bgspeed = 0.5
    rspeed = 4
    allow=0
    kill = 0
    collisionFilter = { groupIndex = -2 }
    --intro = audio.loadSound( "images/rintro.mp3" )
    --theme = audio.play( intro, { channel=1, loops=-1 } )

    physics.start( )
    physics.setGravity( 0, 36)

    --adding centering position variables
    x = display.contentCenterX
    y = display.contentCenterY

    --adding player animations
    options=
    {
            frames = {
            { x = 0, y = 188, width = 28, height = 45, sourceX=0, sourceY=0, sourceWidth=28 , sourceHeight=45 },
            { x = 0, y = 94, width = 31, height = 45, sourceX=0, sourceY=0, sourceWidth=31 , sourceHeight=45 },
            { x = 0, y = 0, width = 37, height = 45, sourceX=0, sourceY=0, sourceWidth=37 , sourceHeight=45 },
            { x = 0, y = 47, width = 33, height = 45, sourceX=0, sourceY=0, sourceWidth=33 , sourceHeight=45 },
            { x = 0, y = 141, width = 30, height = 45, sourceX=0, sourceY=0, sourceWidth=30 , sourceHeight=45 },
            { x = 30, y = 188, width = 25, height = 45, sourceX=0, sourceY=0, sourceWidth=25 , sourceHeight=45 },
            { x = 35, y = 47, width = 20, height = 45, sourceX=0, sourceY=0, sourceWidth=20 , sourceHeight=45 },
            { x = 33, y = 94, width = 20, height = 45, sourceX=0, sourceY=0, sourceWidth=20 , sourceHeight=45 },
            { x = 32, y = 141, width = 23, height = 45, sourceX=0, sourceY=0, sourceWidth=23 , sourceHeight=45 }

        },
        sheetContentWidth = 64,
        sheetContentHeight = 256
    }

    psheet=graphics.newImageSheet( "images/sprites.png", options )

    sequenceData =
    {
        {name="run", start=1, count=9, time=250},
        {name="lup", start=7, count=1}
    }

    --bird data
    boptions=
    {
        frames = {
            { x = 0, y = 28, width = 28, height = 19, sourceX=2, sourceY=0, sourceWidth=35 , sourceHeight=30 },
            { x = 0, y = 12, width = 33, height = 14, sourceX=2, sourceY=5, sourceWidth=35 , sourceHeight=30 },
            { x = 0, y = 0, width = 33, height = 10, sourceX=2, sourceY=11, sourceWidth=35 , sourceHeight=30 },
            { x = 30, y = 28, width = 28, height = 18, sourceX=2, sourceY=11, sourceWidth=35 , sourceHeight=30 },
            { x = 60, y = 17, width = 24, height = 20, sourceX=4, sourceY=10, sourceWidth=35 , sourceHeight=30 },
            { x = 30, y = 48, width = 26, height = 14, sourceX=2, sourceY=11, sourceWidth=35 , sourceHeight=30 },
            { x = 0, y = 49, width = 26, height = 8, sourceX=2, sourceY=10, sourceWidth=35 , sourceHeight=30 },
            { x = 35, y = 0, width = 25, height = 15, sourceX=3, sourceY=4, sourceWidth=35 , sourceHeight=30 }
        },
        sheetContentWidth = 128,
        sheetContentHeight = 64
    }

    bsheet=graphics.newImageSheet( "images/bsheet.png", boptions )

    bdata =
    {
        {name="fly", start=1, count=8, time=600},
    }

    --adding bird
    bfilter={ groupIndex = -4 }

    --creating coins group
    climit=24
    coinsg={}

    --creating obstacles group
    obslimit=24
    obs={}

    Runtime:addEventListener( "tap", jump );
end

function scene:show( event )

    local sceneGroup=self.view
    local phase = event.phase
    -- local previousScene = composer.getSceneName( "previous" )
    -- if(previousScene~=nil) then
 --     composer.removeScene(previousScene)
 --    end

    if(phase=="will") then
        bgtile = display.newImage( "images/bgtile.png",x,y)
        bbgtile=display.newImage( "images/bgtile.png", x+480 ,y)
        rtile=display.newImage( "images/rtile.png", x ,y+122 )
        rrtile=display.newImage( "images/rtile.png", x+480, y+122 )

        --adding player base to stand on
        base=display.newImage( "images/base.png", 80,272 )
        physics.addBody( base, "static",{ bounce=0.0, friction=1,filter=collisionFilter})
        base.isVisible=false
        base.myName="base"

        --adding base to bird
        bbase=display.newImage("images/bbase.png",80,150)
        physics.addBody(bbase,"static",{bounce=0.0,friction=1,filter=collisionFilter})
        bbase.isVisible=false
        bbase.myName="bbase"

        --adding stopper to destroy out of bound objects
        stopper=display.newImage( "images/stopper.png", -20,158 )
        physics.addBody( stopper, "static", {bounce=0.0,friction=1,gravityScale=0,filter=bfilter} )
        stopper.myName="stopper"
        stopper.isVisible=false

        --coins setter lines
        seta=display.newRect(1,128,1200,1)
        physics.addBody(seta,"static",{friction=0,bounce=0.0,filter=bfilter})
        seta.isVisible=false

        setb=display.newRect(1,150,1200,1)
        physics.addBody(setb,"static",{friction=0,bounce=0.0,filter=bfilter})
        setb.isVisible=false

        for j=1,climit do
        coinsg[j]=display.newImage( "images/coin.png", 250,250 )
        coinsg[j].isVisible=false
        coinsg[j].isAlive=false
        physics.addBody( coinsg[j], "dynamic", {friction=0,bounce=0.0,filter=collisionFilter,density=0})
        coinsg[j].myName="coin_num"..j
        coinsg[j].gravityScale=0
        coinsg[j].isBodyActive=false
        end

        obs[1]=display.newImage( "images/ob1.png", 250,250 )
        obs[2]=display.newImage( "images/ob2.png", 250,250 )
        obs[3]=display.newImage( "images/ob3.png", 250,250 )
        obs[4]=display.newImage( "images/ob4.png", 250,250 )
        obs[5]=display.newImage( "images/ob1.png", 250,250 )
        obs[6]=display.newImage( "images/ob2.png", 250,250 )

        obs[7]=display.newImage( "images/ob3.png", 250,250 )
        obs[8]=display.newImage( "images/ob4.png", 250,250 )
        obs[9]=display.newImage( "images/ob1.png", 250,250 )
        obs[10]=display.newImage( "images/ob2.png", 250,250 )
        obs[11]=display.newImage( "images/ob3.png", 250,250 )
        obs[12]=display.newImage( "images/ob4.png", 250,250 )

        obs[13]=display.newImage( "images/ob1.png", 250,250 )
        obs[14]=display.newImage( "images/ob2.png", 250,250 )
        obs[15]=display.newImage( "images/ob3.png", 250,250 )
        obs[16]=display.newImage( "images/ob4.png", 250,250 )
        obs[17]=display.newImage( "images/ob1.png", 250,250 )
        obs[18]=display.newImage( "images/ob2.png", 250,250 )

        obs[19]=display.newImage( "images/ob3.png", 250,250 )
        obs[20]=display.newImage( "images/ob4.png", 250,250 )
        obs[21]=display.newImage( "images/ob1.png", 250,250 )
        obs[22]=display.newImage( "images/ob2.png", 250,250 )
        obs[23]=display.newImage( "images/ob3.png", 250,250 )
        obs[24]=display.newImage( "images/ob4.png", 250,250 )

        for i=1,obslimit do
        obs[i].isVisible=false
        obs[i].isAlive=false
        physics.addBody( obs[i], "dynamic", {friction=1,bounce=0.0,filter=collisionFilter})
        obs[i].myName="stack"..i
        obs[i].gravityScale=0
        obs[i].isBodyActive=false
        end

        player=display.newSprite( psheet, sequenceData)
        player.x=80
        player.y=248
        player:setSequence( "run" )

        bird=display.newSprite(bsheet,bdata )
        bird.x=88
        bird.y=140
        bird:setSequence( "fly" )

    elseif(phase=="did") then
        player:play()
        physics.addBody( player, "dynamic",{ friction=1,density=100 } )
        player.myName="hero"

        bird:play()
        physics.addBody( bird, "dynamic",{ friction=1 ,bounce=0.0, filter=bfilter,density=100} )
        bird.myName="bird"

        player.collision=colls
        player:addEventListener("collision",player)

        stopper.collision=obscols
        stopper:addEventListener( "collision", stopper)

        bird.collision=cclean
        bird:addEventListener("collision",bird)

        Runtime:addEventListener( "enterFrame", move );
    end

end

function scene:hide( event )
    local phase = event.phase
    if ( phase == "will" ) then
        --physics.stop()
        player.collision=nil
        stopper.collision=nil
        bird.collision=nil
        Runtime:removeEventListener( "tap", jump)
        player:removeEventListener("collision",player)
        stopper:removeEventListener( "collision", stopper)
        bird:removeEventListener("collision",bird)

        print("destroyed")
        player:removeSelf()
        player=nil
        bird:removeSelf()
        bird=nil
        base:removeSelf()
        base=nil
        bbase:removeSelf()
        bbase=nil
        bbgtile:removeSelf()
        bbgtile=nil
        bgtile:removeSelf()
        bgtile=nil
        rtile:removeSelf()
        rtile=nil
        rrtile:removeSelf()
        rrtile=nil
        for k=1,24 do
            obs[k]:removeSelf()
            obs[k]=nil
            coinsg[k]:removeSelf()
            coinsg[k]=nil
        end
    end
end

function scene:destroy( event )
    local sceneGroup = self.view
    -- Runtime:removeEventListener( "tap", jump)
    -- player:removeEventListener("collision",player)
    -- stopper:removeEventListener( "collision", stopper)
    -- bird:removeEventListener("collision",bird)

end


scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
-------------------------scene ending------------------------------------------------------


return scene

level2 code

local composer=require("composer")
local scene=composer.newScene("level2")

local function reload( event )
    composer.gotoScene("level1")
end

function scene:create( event )
    local  sceneGroup=self.view
    --tap event listener
    Runtime:addEventListener( "tap", reload );
end

function scene:show( event )
    local sceneGroup=self.view
end

function scene:destroy( event )
    local sceneGroup = self.view
    --banner:removeSelf()
    Runtime:removeEventListener( "tap", reload)
end

scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "destroy", scene )

local x = display.contentCenterX
local y = display.contentCenterY

--local banner=display.newImage("images/gover.png",x,y)





return scene

1 个答案:

答案 0 :(得分:0)

您可以尝试在scene:show()

中将此调用添加到level2

local prevScene = composer.getSceneName( "previous" ) if (prevScene ~= nil) then composer.removeScene(prevScene) end

此外,您应该尝试在创建后将所有对象添加到sceneGroup。看一下场景:本网站的create()部分

https://coronalabs.com/blog/2014/01/21/introducing-the-composer-api-plus-tutorial/

初始化对象后,应使用sceneGroup:insert(object)将它们添加到场景中。