Director Class problem

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:&nbsp; -- -- Version: 1.0 -- Managed with http://CoronaProjectManager.com -- -- Copyright 2013 Harry Newton. All Rights Reserved. --&nbsp; local localGroup function clean (event) &nbsp;&nbsp;&nbsp;&nbsp;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() &nbsp;&nbsp;&nbsp;&nbsp;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() &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;proj = display.newImage("Balloon.png"); proj.x =160 ; proj.y = 420 - 20 &nbsp;&nbsp;&nbsp;&nbsp;physics.addBody( proj, "dynamic",physicsData:get("balloon") ) &nbsp;&nbsp;&nbsp;&nbsp;proj.gravityScale = -7 &nbsp;&nbsp;&nbsp;&nbsp;projFiring = false &nbsp;&nbsp;&nbsp;&nbsp;proj.isBullet = true &nbsp;&nbsp;&nbsp;&nbsp;proj.isBodyActive = false &nbsp;&nbsp;&nbsp;&nbsp;proj.isVisible = false &nbsp;&nbsp;&nbsp;&nbsp; localGroup:insert(proj) &nbsp;&nbsp;&nbsp;&nbsp; end &nbsp;local function spawnEnemy() &nbsp;&nbsp;&nbsp;&nbsp;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 ) &nbsp;&nbsp;&nbsp;&nbsp;if ( event.phase == "began" ) then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--get world coordinates of projectile for joint reference&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self:removeEventListener( "collision", self ) ; self.collision = nil &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--delay function to resolve collision &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local function resolveColl( timerRef ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( timerRef.source.action == "makeJoint" ) then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local weldJoint = physics.newJoint( "weld", self, event.other, self.x, self.y ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--check if velocity of projectile is sufficient to "stick" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local vx,vy = self:getLinearVelocity() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local dirVel = math.sqrt( (vx\*vx)+(vy\*vy) ) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( dirVel \> 100 ) &nbsp; then &nbsp;--if sufficient, stop velocity and trigger joint creation &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self:setLinearVelocity( 0,0 ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "makeJoint" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;--if not sufficient, "break" projectile and create new &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t = timer.performWithDelay( 10, resolveColl, 1 ) ; t.action = "none" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp;end end local function touchAction(event) &nbsp;&nbsp;&nbsp;&nbsp;if ( event.phase == "began" and projFiring == false ) then &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;projFiring = true &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.isBodyActive = true &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.isVisible = true &nbsp; &nbsp; &nbsp; &nbsp; local px,py = event.x-proj.x, event.y-proj.y &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj:applyLinearImpulse( px/8, py/8, proj.x, proj.y ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj:applyTorque( 50 ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.gravityScale = -7 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj.collision = projCollide ; proj:addEventListener( "collision", proj ) &nbsp;&nbsp;&nbsp;&nbsp;end &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;if (projFiring == true) then &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newProj() &nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;INFINITE LOOP HARRY ,U MUST YOU'SE THIS A LOT local function increaseDifficulty() &nbsp; &nbsp; &nbsp; &nbsp; if spawnTmr ~= nil then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timer.cancel(spawnTmr) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; spawnTmr = nil &nbsp; &nbsp; &nbsp; &nbsp; end &nbsp; &nbsp; &nbsp; &nbsp;spawnTime = spawnTime - 250 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- just to be safe, set this to whatever spawn rate would be the &nbsp; &nbsp; &nbsp; &nbsp;-- fastest, so game never spawns to fast &nbsp; &nbsp; &nbsp; &nbsp;if spawnTime \< 250 then &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;spawnTime = 250 &nbsp; &nbsp; &nbsp; &nbsp;end &nbsp; &nbsp; &nbsp; &nbsp;-- spawn at this rate until this timer is canceled&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;spawnTmr = &nbsp;timer.performWithDelay(spawnTime,spawnEnemy, 0) &nbsp; &nbsp; end &nbsp; &nbsp; -- this timer loops only till spawning at most difficult speed is reached &nbsp; &nbsp; local difficultyTmr = &nbsp;timer.performWithDelay(5000, increaseDifficulty,difficultyLevels ) return localGroup &nbsp;&nbsp;&nbsp;&nbsp; end &nbsp;

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