resources/scenebegin.lua

changeset 0
bba7a2a225f6
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/resources/scenebegin.lua	Thu Aug 22 19:50:12 2013 +0200
     1.3 @@ -0,0 +1,472 @@
     1.4 +-- Initiate scene management
     1.5 +local sceneloc = director:createScene()
     1.6 +sceneloc.name = 'Scene: Begin'
     1.7 +
     1.8 +-- Calculate constants
     1.9 +local dsw = director.displayWidth
    1.10 +local dsh = director.displayHeight
    1.11 +local dmw = director.displayCenterX
    1.12 +local dmh = director.displayCenterY
    1.13 +local nFoodpoints = 2
    1.14 +local nAsterpoints = -2
    1.15 +local nCometpoints = -1
    1.16 +
    1.17 +-- Initialize common variables
    1.18 +local spriteNull = director:createSprite(0, 0)
    1.19 +local timerHero  = director:createNode()
    1.20 +local labReady   = director:createNode()
    1.21 +local nHealth    = 0
    1.22 +local tweenOut   = 0
    1.23 +
    1.24 +-- Instantiate common fonts
    1.25 +local fontSegoe = director:createFont('fonts/SegoeUI-64pt_bold.fnt')
    1.26 +local fontArial = director:createFont('fonts/Arial-96pt_bold.fnt')
    1.27 +--local fontFxsys = director:createFont('fonts/Fixedsys-96pt_norm.fnt')
    1.28 +
    1.29 +-- Prepare math runtime
    1.30 +math.randomseed(os.time())
    1.31 +math.random(); math.random(); math.random(); math.random()
    1.32 +
    1.33 +function sceneloc:setUp(event)
    1.34 +    -- Create sprite, bottom left of image is at bottom left of display
    1.35 +    --local spriteGalaxy = director:createSprite(0, 0, 'textures/galaxyback_720.png')
    1.36 +    local spriteGalaxy = director:createSprite(0, 0, 'textures/galaxyback_360.png')
    1.37 +    spriteGalaxy.xScale = 2  -- Needed due to small maximum sprite size
    1.38 +    spriteGalaxy.yScale = 2  -- Needed due to small maximum sprite size
    1.39 +
    1.40 +    -- Animate the image to scroll along the X axis over 2 minutes
    1.41 +    funcyScroll = function(spriteIn)
    1.42 +        if spriteIn.xFlip == false then
    1.43 +            spriteIn.xFlip = true
    1.44 +        else
    1.45 +            spriteIn.xFlip = false
    1.46 +        end
    1.47 +
    1.48 +        spriteIn.x = spriteIn.x + dsh
    1.49 +    end
    1.50 +
    1.51 +    funcyGalstart = function(spriteIn)
    1.52 +        --tween:cancel(tweenReady)
    1.53 +        tweenReadweg = tween:dissolve(labReady, spriteNull, .5, 0)
    1.54 +        labReady = ''
    1.55 +    end
    1.56 +    --tween:to(spriteGalaxy, {delay=5, time=120, x=dsw-spriteGalaxy.w, mode='repeat', onComplete=funcyScroll})
    1.57 +    local tweenBack = tween:to(spriteGalaxy, {delay=5, time=100, mode='repeat', x=dsw-spriteGalaxy.w*2, onStart=funcyGalstart})  -- *2 for xyScale (above)
    1.58 +
    1.59 +    -- Instantiate star field particles behind hero
    1.60 +    local partiStarfar = director:createParticles('particles/stars.plist')
    1.61 +    partiStarfar.sourcePos = {dsw, dmh}
    1.62 +
    1.63 +    -- Create hero, middle of left edge of screen
    1.64 +    local atlasHero = director:createAtlas({
    1.65 +        width = 300,
    1.66 +        height = 200,
    1.67 +        numFrames = 8,
    1.68 +        textureName = 'textures/heroatlas.png',
    1.69 +        })
    1.70 +
    1.71 +    local animHero = director:createAnimation({
    1.72 +        start = 1,
    1.73 +        count = 8,
    1.74 +        atlas = atlasHero,
    1.75 +        delay = 1/8,
    1.76 +        })
    1.77 +
    1.78 +    local spriteHero = director:createSprite({
    1.79 +        name='hero', x=dsw/8, y=dmh,
    1.80 +        xAnchor=0.5, yAnchor=0.5,
    1.81 +        source=animHero,
    1.82 +        })
    1.83 +
    1.84 +    -- Instantiate star field particles in front of hero
    1.85 +    local partiStarnear = director:createParticles('particles/stars.plist')
    1.86 +    partiStarnear.sourcePos = {dsw, dmh}
    1.87 +
    1.88 +    -- Instantiate good things, like cheese
    1.89 +    funcyFood = function(spriteIn)
    1.90 +        --tween:cancel(tweenOut)
    1.91 +        --spriteIn.tweens[1].delay = math.random(0, 5)
    1.92 +        spriteIn.y = math.random(dsh/16, dsh-dsh/16)
    1.93 +        spriteIn.isVisible = true
    1.94 +    end
    1.95 +    local spriteCattin = director:createSprite(dsw, dmh, 'textures/cattin.png')
    1.96 +    local tweenCattin = tween:to(spriteCattin, {delay=math.random(1, 10), time=12, mode='repeat', x=-dsw, onComplete=funcyFood})
    1.97 +    spriteCattin.name = 'food'
    1.98 +    spriteCattin.xAnchor = 0
    1.99 +    spriteCattin.yAnchor = 0
   1.100 +    spriteCattin.xScale = .5
   1.101 +    spriteCattin.yScale = .5
   1.102 +    local spriteCheese = director:createSprite(dsw, dmh, 'textures/cheesepiece.png')
   1.103 +    local tweenCheese = tween:to(spriteCheese, {delay=math.random(1, 10), time=16, mode='repeat', x=-dsw, onComplete=funcyFood, xAnchor=0, yAnchor=0})
   1.104 +    spriteCheese.name = 'food'
   1.105 +    spriteCheese.xAnchor = 0
   1.106 +    spriteCheese.yAnchor = 0
   1.107 +    spriteCheese.xScale = .8
   1.108 +    spriteCheese.yScale = .8
   1.109 +    local spriteFischkopf = director:createSprite(dsw, dmh, 'textures/fischkopfe.png')
   1.110 +    local tweenFischkopf = tween:to(spriteFischkopf, {delay=math.random(1, 10), time=8, mode='repeat', x=-dsw, onComplete=funcyFood})
   1.111 +    spriteFischkopf.name = 'food'
   1.112 +    spriteFischkopf.xAnchor = 0
   1.113 +    spriteFischkopf.yAnchor = 0
   1.114 +    spriteFischkopf.xScale = .325
   1.115 +    spriteFischkopf.yScale = .325
   1.116 +
   1.117 +    -- Instantiate comets and other dangerous particles
   1.118 +    funcyStartdang = function(spriteIn)
   1.119 +        -- Adjust delay to spread out danger objects
   1.120 +        --spriteIn.
   1.121 +    end
   1.122 +    funcyComets = function(spriteIn)
   1.123 +        local locVert = math.random(dsh/16, dsh-dsh/16)
   1.124 +        spriteIn.tweens.delay = math.random(1, 10)
   1.125 +        spriteIn.y = locVert
   1.126 +    end
   1.127 +    funcyGalies = function(spriteIn)
   1.128 +        local locVert = math.random(dsh/16, dsh-dsh/16)
   1.129 +        spriteIn.tweens.delay = math.random(1, 10)
   1.130 +        spriteIn.y = locVert
   1.131 +    end
   1.132 +
   1.133 +    local posComety = math.random(dsh/16, dsh-dsh/16)
   1.134 +    local timComety = math.random(5, 12)
   1.135 +    local posGalaxy = math.random(dsh/16, dsh-dsh/16)
   1.136 +    local timGalaxy = math.random(5, 12)
   1.137 +
   1.138 +    -- Overlays needed for collision detection (particles arent detected)
   1.139 +    local spriteCom = director:createSprite({name='comet', x=dsw+dsw/4, y=posComety})
   1.140 +    spriteCom.name = 'comet'
   1.141 +    local tweenCom = tween:to(spriteCom, {delay=timComety, time=13, x=-dsw-dsw/4, mode='repeat', onStart=funcyStartdang, onComplete=funcyComets})
   1.142 +    local spriteGal = director:createSprite(dsw+dsw/4, posGalaxy)
   1.143 +    spriteGal.name = 'comet'
   1.144 +    local tweenGal = tween:to(spriteGal, {delay=timGalaxy, time=11, x=-dsw-dsw/4, mode='repeat', onStart=funcyStartdang, onComplete=funcyGalies})
   1.145 +
   1.146 +    local partiComet = director:createParticles('particles/comets.plist')
   1.147 +    --partiComet.name = 'comet'
   1.148 +    --partiComet.sourcePos = {dsw+dsw/4, posComety}
   1.149 +    --partiComet.sourcePos = {0, 60}
   1.150 +    --tween:to(partiComet, {delay=timComety, time=11, x=-dsw-dsw/4, mode='repeat', onStart=funcyStartdang, onComplete=funcyComets})
   1.151 +    local partiGalax = director:createParticles('particles/galaxies.plist')
   1.152 +    --partiGalax.name = 'comet'
   1.153 +    --partiGalax.sourcePos = {dsw+dsw/4, posGalaxy}
   1.154 +    --partiGalax.sourcePos = {0, 40}
   1.155 +    --tween:to(partiGalax, {delay=timGalaxy, time=9, x=-dsw-dsw/4, mode='repeat', onStart=funcyStartdang, onComplete=funcyGalies})
   1.156 +    spriteCom:addChild(partiComet)
   1.157 +    spriteGal:addChild(partiGalax)
   1.158 +
   1.159 +    -- Start audio streams
   1.160 +    audio:loadStream('sounds/dream.mp3')
   1.161 +    audio:playStream('sounds/dream.mp3', true)
   1.162 +
   1.163 +    -- Instantiate motor smoke particles
   1.164 +    -- Create from an initialiser list
   1.165 +     local partiSmoke = director:createParticles({
   1.166 +        totalParticles=1500,
   1.167 +        source='particles/fire.png',
   1.168 +        emitterMode=particles.modeGravity, emitterRate=1500/3.5,
   1.169 +        --sourcePos={dsw/8, dmh},
   1.170 +        sourcePos={spriteHero.w/6, spriteHero.h/2},
   1.171 +        sourcePosVar={0, 16},
   1.172 +        duration=particles.durationInfinity,
   1.173 +
   1.174 +        modeGravity={
   1.175 +            --gravity={-90, 0},
   1.176 +            speed=180, speedVar=50,
   1.177 +            radialAccel=0, radialAccelVar=0,
   1.178 +            --tangentialAccel=0, tangentialAccelVar=40,
   1.179 +            },
   1.180 +
   1.181 +        --angle=90, angleVar=20,
   1.182 +        angle=180, angleVar=10,
   1.183 +        life=4, lifeVar=2,
   1.184 +
   1.185 +        --startColor={0x80, 0x80, 0x80, 0xff}, startColorVar={0x80, 0x80, 0x80, 25},
   1.186 +        --endColor={25, 25, 25, 50}, endColorVar={25, 25, 25, 50},
   1.187 +        startColor=color.white, endColor=color.black,
   1.188 +
   1.189 +        startSize=24.0, startSizeVar=2.0,
   1.190 +        endSize=particles.startSizeEqualToEndSize
   1.191 +    })
   1.192 +    partiSmoke:stop()
   1.193 +    spriteHero:addChild(partiSmoke)
   1.194 +
   1.195 +    ---- Instantiate asteroids
   1.196 +    funcyAster = function(spriteIn)
   1.197 +        spriteIn:rotate(30)
   1.198 +        spriteIn.y = math.random(dsh/16, dsh-dsh/16)
   1.199 +    end
   1.200 +    local spriteAster1 = director:createSprite(dsw, dmh, 'textures/asteroid1.png')
   1.201 +    local tweenAster1 = tween:to(spriteAster1, {delay=math.random(5, 12), time=8, mode='repeat', x=-dsw, onComplete=funcyAster})
   1.202 +    spriteAster1.name = 'aster'
   1.203 +    spriteAster1.xAnchor = 0
   1.204 +    spriteAster1.yAnchor = 0
   1.205 +    spriteAster1.xScale = .25
   1.206 +    spriteAster1.yScale = .25
   1.207 +    local spriteAster2 = director:createSprite(dsw, dmh, 'textures/asteroid2.png')
   1.208 +    local tweenAster2 = tween:to(spriteAster2, {delay=math.random(5, 12), time=10, mode='repeat', x=-dsw, onComplete=funcyAster})
   1.209 +    spriteAster2.name = 'aster'
   1.210 +    spriteAster2.xAnchor = 0
   1.211 +    spriteAster2.yAnchor = 0
   1.212 +    spriteAster2.xScale = .25
   1.213 +    spriteAster2.yScale = .25
   1.214 +
   1.215 +    -- Instantiate explanation text
   1.216 +    labReady = director:createLabel({
   1.217 +        hAlignment='centre',
   1.218 +        vAlignment='middle',
   1.219 +        --font=fontFxsys,
   1.220 +        font=fontArial,
   1.221 +        text='Ready!',
   1.222 +        color=color.white,
   1.223 +        alpha=0})
   1.224 +    local tweenReady = tween:to(labReady, {time=.5, easing=ease.powIn, textXScale=2, textYScale=2, alpha=1})
   1.225 +
   1.226 +    -- Initialize physics simulation
   1.227 +    physics:setGravity(0, 0)
   1.228 +    local ptRndbox = {100,50, 260,50, 290,80, 290,120, 260,150, 80,150}
   1.229 +    physics:addNode(spriteHero, {isSensor = true, shape=ptRndbox})
   1.230 +    physics:addNode(spriteCattin, {isSensor = true})
   1.231 +    physics:addNode(spriteCheese, {isSensor = true})
   1.232 +    physics:addNode(spriteFischkopf, {isSensor = true})
   1.233 +    --physics:addNode(partiComet, {isSensor = true})
   1.234 +    --physics:addNode(partiGalax, {isSensor = true})
   1.235 +    local ptTri = {-45,0, 75,-90, 75,90}
   1.236 +    local ptSmal = {-30,0, 100,-20, 100,40}
   1.237 +    physics:addNode(spriteCom, {isSensor = true, shape=ptTri})
   1.238 +    physics:addNode(spriteGal, {isSensor = true, shape=ptSmal})
   1.239 +    physics:addNode(spriteAster1, {isSensor = true})  -- Set in tween instead
   1.240 +    physics:addNode(spriteAster2, {isSensor = true})  -- Set in tween instead
   1.241 +    --spriteCom.physics.radius = 50
   1.242 +    --spriteGal.physics.radius = 50
   1.243 +    -- Marmalade bug if radius is different than actual perfectly round object image
   1.244 +    spriteAster1.physics.radius = spriteAster1.w/2
   1.245 +    spriteAster2.physics.radius = spriteAster2.w/2
   1.246 +    --physics.debugDraw = true
   1.247 +
   1.248 +    -- Implement collision listener
   1.249 +    function hit(event)
   1.250 +        if event.phase == 'began' then
   1.251 +            --local labHit = director:createLabel({x=event.nodeA.x, y=event.nodeA.y, text=event.nodeB.name, font=fontSegoe, color=color.white})
   1.252 +            if event.nodeA.name == 'food' then
   1.253 +                --tween:cancel(event.nodeA.tweens[1])
   1.254 +                --tweenOut = tween:dissolve(event.nodeA, spriteNull, 1, 0)
   1.255 +                --table.insert(event.nodeA.tweens, tween:dissolve(event.nodeA, spriteNull, 1, 0))
   1.256 +                --event.nodeA.x = math.random(dsw/16, dsw-dsw/16)
   1.257 +                --event.nodeA.y = math.random(dsh/16, dsh-dsh/16)
   1.258 +                event.nodeA.isVisible = false
   1.259 +                audio:playSound('sounds/belch.pcm')
   1.260 +                nHealth = nHealth + nFoodPoints
   1.261 +                local labPoints = director:createLabel({
   1.262 +                    x=0, y=0,
   1.263 +                    hAlignment='centre',
   1.264 +                    vAlignment='middle',
   1.265 +                    textXScale=.5,
   1.266 +                    textYScale=.5,
   1.267 +                    --font=fontFxsys,
   1.268 +                    font=fontArial,
   1.269 +                    text='+' .. nFoodpoints,
   1.270 +                    color=color.white,
   1.271 +                    alpha=1})
   1.272 +                local tweenPoints = tween:to(labPoints, {time=1, easing=ease.powIn, textXScale=15, textYScale=15, alpha=0})
   1.273 +            elseif event.nodeB.name == 'food' then
   1.274 +                event.nodeB.isVisible = false
   1.275 +                audio:playSound('sounds/belch.pcm')
   1.276 +                nHealth = nHealth + nFoodpoints
   1.277 +                local labPoints = director:createLabel({
   1.278 +                    x=0, y=0,
   1.279 +                    hAlignment='centre',
   1.280 +                    vAlignment='middle',
   1.281 +                    textXScale=.5,
   1.282 +                    textYScale=.5,
   1.283 +                    --font=fontFxsys,
   1.284 +                    font=fontArial,
   1.285 +                    text='+' .. nFoodpoints,
   1.286 +                    color=color.white,
   1.287 +                    alpha=1})
   1.288 +
   1.289 +                local tweenPoints = tween:to(labPoints, {time=1, easing=ease.powIn, textXScale=15, textYScale=15, alpha=0})
   1.290 +            elseif event.nodeA.name == 'aster' then
   1.291 +                local diffiX = event.nodeB.x - event.nodeA.x
   1.292 +                local diffiY = event.nodeB.y - event.nodeA.y
   1.293 +                tween:cancel(event.nodeB.tweens[1])
   1.294 +                --tween:to(spriteHero, {time=0.5, easing=ease.powOut, easingValue=5, x=event.nodeB.x-diffiX*2, y=event.nodeB.y-diffiY*2})
   1.295 +                tween:to(spriteHero, {time=1, easing=ease.powOut, easingValue=5, x=spriteHero.x-dsw/16, y=spriteHero.y})
   1.296 +                --if device:isVibrationAvailable() then
   1.297 +                --    device:vibrate(100)
   1.298 +                --end
   1.299 +                audio:playSound('sounds/ouch.pcm')
   1.300 +                nHealth = nHealth + nAsterpoints
   1.301 +            elseif event.nodeB.name == 'aster' then
   1.302 +                tween:cancel(event.nodeA.tweens[1])
   1.303 +                tween:to(spriteHero, {time=1, easing=ease.powOut, easingValue=5, x=spriteHero.x-dsw/16, y=spriteHero.y})
   1.304 +                --if device:isVibrationAvailable() then
   1.305 +                --    device:vibrate(100)
   1.306 +                --end
   1.307 +                audio:playSound('sounds/ouch.pcm')
   1.308 +                nHealth = nHealth + nAsterpoints
   1.309 +            elseif event.nodeA.name == 'comet' then
   1.310 +                --if device:isVibrationAvailable() then
   1.311 +                --    device:vibrate(800)
   1.312 +                --end
   1.313 +                audio:playSound('sounds/torche.pcm')
   1.314 +                nHealth = nHealth + nCometpoints
   1.315 +            elseif event.nodeB.name == 'comet' then
   1.316 +                --if device:isVibrationAvailable() then
   1.317 +                --    device:vibrate(800)
   1.318 +                --end
   1.319 +                audio:playSound('sounds/torche.pcm')
   1.320 +                nHealth = nHealth + nCometpoints
   1.321 +            end
   1.322 +        end
   1.323 +        return true
   1.324 +    end
   1.325 +    spriteHero:addEventListener('collision', hit)
   1.326 +
   1.327 +    -- Implement event handlers
   1.328 +    -- General screen touch move events
   1.329 +    --Marmalade bugs cause audio to fail!
   1.330 +    function moveStart(event)
   1.331 +        --if not partiSmoke:isActive() then
   1.332 +            partiSmoke:reset()
   1.333 +        --end
   1.334 +        --local audiMotor = audio:playSound('sounds/motor.pcm')  -- distracting
   1.335 +    end
   1.336 +    function moveStop(event)
   1.337 +        partiSmoke:stop()
   1.338 +        audio:stopSound(audiMotor)
   1.339 +    end
   1.340 +    function touch(event)
   1.341 +        if event.phase=='began' then
   1.342 +            --also: powIn, expIn, sineIn, elasticIn, bounceIn, backIn
   1.343 +            tween:to(spriteHero, {time=1, easing=ease.powOut, easingValue=2, x=event.x, y=event.y, onStart=moveStart, onComplete=moveStop})
   1.344 +        elseif event.phase=='ended' then
   1.345 +            -- Noop
   1.346 +            --dbg.print('Noop')
   1.347 +            --system:sendEvent('stopMotor', {timeIn=2, sizeFart=5})
   1.348 +        elseif event.phase=='moved' then
   1.349 +            tween:to(spriteHero, {time=1, easing=ease.powOut, easingValue=2, x=event.x, y=event.y, onStart=moveStart, onComplete=moveStop})
   1.350 +        end
   1.351 +    end
   1.352 +    system:addEventListener('touch', touch)
   1.353 +
   1.354 +    -- Start health timers and label appropriately
   1.355 +    nHealth = 90  -- A minute and a half of life
   1.356 +    local labHealth = director:createLabel({
   1.357 +        x=-fontArial.height*1.75, y=fontArial.height/4,
   1.358 +        hAlignment='right',
   1.359 +        vAlignment='bottom',
   1.360 +        font=fontArial,
   1.361 +        text='Health',
   1.362 +        color=color.white,
   1.363 +        alpha=.375
   1.364 +        })
   1.365 +    local labDeath = director:createLabel({
   1.366 +        x=-fontArial.height/2, y=fontArial.height/4,
   1.367 +        hAlignment='right',
   1.368 +        vAlignment='bottom',
   1.369 +        font=fontArial,
   1.370 +        text=nHealth,
   1.371 +        color=color.white,
   1.372 +        alpha=.375
   1.373 +        })
   1.374 +
   1.375 +    funcyHealth = function(event)
   1.376 +        thisNode = event.target
   1.377 +        --timerObject     = event.timer
   1.378 +        --iterationsLeft  = event.doneIterations
   1.379 +        --thisNode.health = thisNode.health - 1
   1.380 +        nHealth = nHealth - 1
   1.381 +        labDeath.text = nHealth
   1.382 +
   1.383 +        -- Is the game over?
   1.384 +        if nHealth <= 0 then
   1.385 +            timerHero:cancel()
   1.386 +            --audio:stopStream()
   1.387 +            --tween:cancel(tweenBack)
   1.388 +            tween:cancel(tweenCattin)
   1.389 +            tween:cancel(tweenCheese)
   1.390 +            tween:cancel(tweenFischkopf)
   1.391 +            tween:cancel(tweenCom)
   1.392 +            tween:cancel(tweenGal)
   1.393 +            tween:cancel(tweenAster1)
   1.394 +            tween:cancel(tweenAster2)
   1.395 +            system:removeEventListener('touch', touch)
   1.396 +
   1.397 +            local rectGover = director:createRectangle({
   1.398 +                x=0, y=0,
   1.399 +                w=dsw, h=dsh,
   1.400 +                strokeWidth=0,
   1.401 +                color=color.black,
   1.402 +                alpha=0})
   1.403 +            local labGover = director:createLabel({
   1.404 +                --x=0, y=fontArial.height,
   1.405 +                hAlignment='centre',
   1.406 +                vAlignment='middle',
   1.407 +                --font=fontFxsys,
   1.408 +                font=fontArial,
   1.409 +                text='GAME OVER',
   1.410 +                color=color.white,
   1.411 +                alpha=0})
   1.412 +
   1.413 +            --powIn, expIn, sineIn, elasticIn, bounceIn, backIn, easingValue
   1.414 +            local tweenGvback = tween:to(rectGover, {time=2, alpha=.6})
   1.415 +            local tweenGvtext = tween:to(labGover, {time=3, easing=ease.expIn, easingValue=3, textXScale=2, textYScale=2, alpha=1})
   1.416 +            local tweenGvlast = tween:to(labGover, {delay=3, time=1.5, mode='mirror', easing=ease.backOut, textXScale=2.125, textYScale=2.125})
   1.417 +
   1.418 +            -- Not ready for prime time (must implement back stack noch)
   1.419 +            ---- Instantiate replay and back buttons
   1.420 +            --local butPlay = director:createSprite({xAnchor=1, source='images/butplay.png', alpha=0})
   1.421 +            --butPlay.x = dmw - butPlay.w/12
   1.422 +            --butPlay.y = dmh - butPlay.h
   1.423 +            --local butBack = director:createSprite({source='images/butback2.png', alpha=0})
   1.424 +            --butBack.x = dmw + butBack.w/12
   1.425 +            --butBack.y = dmh - butBack.h
   1.426 +            --tweenButplayin = tween:to(butPlay, {delay=4.0, time=1, alpha=1})
   1.427 +            --tweenButbackin = tween:to(butBack, {delay=4.5, time=1, alpha=1})
   1.428 +            --function butPlay:touch(event)
   1.429 +            --    if event.phase == 'began' then
   1.430 +            --        director:moveToScene(sceneBegin, transoptr)
   1.431 +            --    end
   1.432 +            --    return true
   1.433 +            --end
   1.434 +            --butPlay:addEventListener('touch', butPlay)
   1.435 +            --function butBack:touch(event)
   1.436 +            --    if event.phase == 'began' then
   1.437 +            --        director:moveToScene(sceneIntro, transoptr)
   1.438 +            --    end
   1.439 +            --    return true
   1.440 +            --end
   1.441 +            --butBack:addEventListener('touch', butBack)
   1.442 +        end
   1.443 +    end
   1.444 +    --timerHealth = system:addTimer(funcyHealth, 1, 0, 4)
   1.445 +    timerHero = spriteHero:addTimer(funcyHealth, 1, 0, 4)
   1.446 +end
   1.447 +
   1.448 +function sceneloc:tearDown(event)
   1.449 +    dbg.print('sceneloc:tearDown')
   1.450 +    audio:stopStream()
   1.451 +    --self.releaseResources()
   1.452 +    --self.<obj-here> = self.<obj-here>:removeFromParent()
   1.453 +    --self.obj0:removeFromParent()
   1.454 +    --self.obj1:removeFromParent()
   1.455 +    --self.obj0 = nil
   1.456 +    --self.obj1 = nil
   1.457 +end
   1.458 +function sceneloc:enterPreTransition(event)
   1.459 +    dbg.print('sceneloc:enterPreTransition')
   1.460 +end
   1.461 +function sceneloc:enterPostTransition(event)
   1.462 +    dbg.print('sceneloc:enterPostTransition')
   1.463 +end
   1.464 +function sceneloc:exitPreTransition(event)
   1.465 +    dbg.print('sceneloc:exitPreTransition')
   1.466 +end
   1.467 +function sceneloc:exitPostTransition(event)
   1.468 +    dbg.print('sceneloc:exitPostTransition')
   1.469 +end
   1.470 +
   1.471 +sceneloc:addEventListener({'setUp', 'tearDown', 'enterPreTransition',
   1.472 +    'enterPostTransition', 'exitPreTransition', 'exitPostTransition'}, sceneloc)
   1.473 +
   1.474 +return sceneloc
   1.475 +

mercurial