That problem is likely caused by you not inserting that display object into the scene’s localGroup.
Rob
That problem is likely caused by you not inserting that display object into the scene’s localGroup.
Rob
I’ve double checked a million times to see if is inserted, and it is inserted properly, any other advice?. i sort of rearranged the code again , here it is
module(..., package.seeall) -- Project: sticky balloons -- Description: -- -- Version: 1.0 -- Managed with http://CoronaProjectManager.com -- -- Copyright 2013 Harry Newton. All Rights Reserved. -- local localGroup function clean (event) print("cleaned") end new = function () local widget = require "widget-v1" widget.setTheme("theme\_ios") display.setStatusBar(display.HiddenStatusBar) local physics = require "physics" physics.start();physics.setGravity(0,1) physics.setDrawMode("normal") localGroup = display.newGroup() local ox, oy = math.abs(display.screenOriginX), math.abs(display.screenOriginY) local cw, ch = display.contentWidth, display.contentHeight local stage = display.getCurrentStage() --------------------------------------------------------------------- --FOREGROUND OBJECTS -------------------------------------------------------------------- local background = display.newImage("background.jpg") localGroup:insert(background) local ground = display.newImage("floor.png") physics.addBody(ground,"static") ground.y = 480 localGroup:insert(ground) local turret = display.newImageRect("BalloonTurret.png",134,134) turret.x = 160 turret.y = 420 localGroup:insert(turret) ------------------------------------------------------------- ------------------------------------------------------------- local function buttonHit() director:changeScene("menu", "fade") end local back = widget.newButton {style = "backSmall",label = "back", onRelease = buttonHit} localGroup:insert(back) local projFiring = false local proj local physicsData = (require "Balloon").physicsData(1.0) local function newProj() proj = display.newImage("Balloon.png"); proj.x =160 ; proj.y = 420 - 20 physics.addBody( proj, "dynamic",physicsData:get("balloon") ) proj.gravityScale = -7 projFiring = false proj.isBullet = true proj.isBodyActive = false proj.isVisible = false localGroup:insert(proj) end local function spawnEnemy() local enemyBalloon = display.newImage("balloon2.png") physics.addBody(enemyBalloon,"dynamic", physicsData:get("balloon") ) enemyBalloon:setFillColor( 214, 0, 19 ) enemyBalloon:applyTorque( 50 ) enemyBalloon.x = math.random(0,320) enemyBalloon.y = -60 localGroup:insert(enemyBalloon) end --collision handler local function projCollide( self,event ) if ( event.phase == "began" ) then --get world coordinates of projectile for joint reference self:removeEventListener( "collision", self ) ; self.collision = nil --delay function to resolve collision local function resolveColl( timerRef ) if ( timerRef.source.action == "makeJoint" ) then local weldJoint = physics.newJoint( "weld", self, event.other, self.x, self.y ) end end --check if velocity of projectile is sufficient to "stick" local vx,vy = self:getLinearVelocity() local dirVel = math.sqrt( (vx\*vx)+(vy\*vy) ) if ( dirVel \> 100 ) then --if sufficient, stop velocity and trigger joint creation self:setLinearVelocity( 0,0 ) local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "makeJoint" else --if not sufficient, "break" projectile and create new local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "none" end end end local function touchAction(event) if ( event.phase == "began" and projFiring == false ) then projFiring = true proj.isBodyActive = true proj.isVisible = true local px,py = event.x-proj.x, event.y-proj.y proj:applyLinearImpulse( px/8, py/8, proj.x, proj.y ) proj:applyTorque( 50 ) proj.gravityScale = -7 proj.collision = projCollide ; proj:addEventListener( "collision", proj ) end if (projFiring == true) then newProj() end end newProj() background:addEventListener( "touch", touchAction ) --------------------------------------------------------------------------------------------------------------- --NEED TO PUT LOCAL GROUP AFTER X AND Y COORDINATES, SO I HAVE TO REWRITE THE FUNCTION ---------------------------------------------------------------------------------------------------------------z local spawnTmr local spawnTime = 5000 local difficultyLevels = 4 --local spawnTimer = timer.performWithDelay(5000,spawnEnemy, 0 )---- THIS IS AN INFINITE LOOP HARRY ,U MUST YOU'SE THIS A LOT local function increaseDifficulty() if spawnTmr ~= nil then timer.cancel(spawnTmr) spawnTmr = nil end spawnTime = spawnTime - 250 -- just to be safe, set this to whatever spawn rate would be the -- fastest, so game never spawns to fast if spawnTime \< 250 then spawnTime = 250 end -- spawn at this rate until this timer is canceled spawnTmr = timer.performWithDelay(spawnTime,spawnEnemy, 0) end -- this timer loops only till spawning at most difficult speed is reached local difficultyTmr = timer.performWithDelay(5000, increaseDifficulty,difficultyLevels ) return localGroup end
Where are you killing your spawn timer? It looks like it’s still running even after changing scenes…
Rob
how would i fix that?
i thinks storyboard seems like a more logical solution, i think im gona switch
put timer.cancel(spawnTmr) in your clean function, though you will need to move the “local spawnTmr” line to somewhere before your clean function.
Rob
were should i pt the clean function in my code?
does it matter were i put my clean function?
Again, Director isn’t supported, but I think it goes inside the new function. I would look at some Director tutorials or other code samples that use it.
Rob