Perhaps this will give you some ideas...
Code:// added two background movie clips to the stage, // instance names bgA and bgB, both must be wider than stage var dy:Number = 0; var gravity:Number = 1; var canjump:Boolean = false; var minObj:int = 2; var maxObj:int = 5; var objs:Sprite = new Sprite(); var hurdle:Hurdle; var healthAmt:int = 10; var maxHealth:int = health.width; hero.gotoAndStop('still'); hero.upval = 0; bgA.speed = 5; bgA.x = 0; bgB.x = bgA.x + bgA.width; addObj(bgB); btnPause.addEventListener(MouseEvent.MOUSE_DOWN, doPause); btnJump.addEventListener(MouseEvent.MOUSE_DOWN, doJump); stage.addEventListener(MouseEvent.MOUSE_UP, doWalk); stage.addEventListener(Event.ENTER_FRAME,onenter); function doPause(e:Event):void { bgA.speed = 0; hero.scaleX = -1; hero.gotoAndStop('still'); } function doJump(e:Event):void { hero.upval = -20; } function doWalk(e:Event):void { hero.upval = 0; bgA.speed = 5; hero.gotoAndStop('walking'); } function onenter(e:Event):void { bgA.x -= bgA.speed; bgB.x -= bgA.speed; if (bgA.x < - bgA.width) { bgA.x = bgB.x + bgB.width; addObj(bgA); } if (bgB.x < - bgB.width) { bgB.x = bgA.x + bgA.width; addObj(bgB); } dy += gravity; if (hero.y > 300) { dy = 0; canjump = true; } if (canjump) { dy = hero.upval; canjump = false; } hero.y += dy; if (hero.hitTestObject(bgA)) { checkHit(bgA); } if (hero.hitTestObject(bgB)) { checkHit(bgB); } } function checkHit($mc:MovieClip):void { objs = $mc.getChildByName($mc.name) as Sprite; if (objs) { for (var i:int; i < objs.numChildren; i++) { hurdle = (objs.getChildAt(i)) as Hurdle; if (! hurdle.gotHit) { if (hero.hitTestObject(hurdle)) { hurdle.gotHit = true; health.width -= (maxHealth / healthAmt); if (health.width <= 0){ trace("game over"); stage.removeEventListener(Event.ENTER_FRAME,onenter); } } } } } } function addObj($mc:MovieClip):void { objs = $mc.getChildByName($mc.name) as Sprite; if (objs) { $mc.removeChild(objs); } objs = new Sprite(); objs.name = $mc.name; var numObj:int = randomRange(minObj,maxObj); for (var i:int = 0; i < numObj; i++) { hurdle = new Hurdle(); hurdle.x = randomRange(hurdle.width,$mc.width - hurdle.width); hurdle.y = 300 - hurdle.height; objs.addChild(hurdle); } $mc.addChild(objs); } function randomRange(min:Number, max:Number):Number { return (min + Math.random() * (max - min)); }




Reply With Quote