class Launcher extends MovieClip { //variables var ymov:Number = 0; var yaccel:Number = 2; var ylimit:Number = 10; var ydir:String; var bulletTimer:Number; var bulletNo:Boolean = false; var bulletInterval:Number = 300; var bulletCounter:Number = 0; var bulletLimit:Number = 2; var score:Number = 0; var livesLeft:Number = 3; var i:Number; var gameOver:Boolean= false; var laser:Sound; var littleShipExplode:Sound; //functions function keyHandler () { if (Key.isDown(40) && this._y < 360) // down arrow { ydir="down"; ymov += yaccel; // script uses acceleration to make ship movement more realistic if (ymov > ylimit) { ymov= ylimit; } } else if (Key.isDown(38) && this._y > 40) // up arrow { ydir="up"; ymov -= yaccel; if (ymov < -ylimit) { ymov = -ylimit; } } else if (ydir=="down") { ymov -= yaccel; if (ymov < 0 ) // next two scripts handles de-acceleration when direction buttons { // are no longer pressed ymov = 0; ydir="center"; } } else if (ydir=="up") { ymov += yaccel; if (ymov > 0 ) { ymov = 0; ydir="center"; } } if (Key.isDown(32)) // space bar { if (bulletNo == false ) // script attaches bullet if last bullet fired was less than bulletInterval { laser.start (); bulletCounter++; bulletNo = true; //bulletTimer = getTimer() + bulletInterval; _root.attachMovie('bullet','bullet',_root.getNextHighestDepth()); } } } function collisionTest () { for (i=0; i < 8; i++) { if (this.hitTest (_root['invader'+i]) && _root['invader'+i].launcherHit == false) { _root.launcher.gotoAndPlay (1); // start collision animation littleShipExplode.start (); _root['invader'+i].launcherHit = true; _root['invader'+i].gotoAndPlay ('Explode'); //trace ('hit'); livesLeft --; _root.life.gotoAndPlay ((_root.life._currentframe)+4); if (livesLeft <= 0) { _root.gotoAndPlay(3); gameOver=true; } } } } function changeScore () { _root.score.score = score; } function resetGame () { livesLeft=3; _root.life.gotoAndPlay (1); } //handlers function onEnterFrame () { changeScore (); collisionTest (); // checks for invader hitting the launcher keyHandler (); this._y+= ymov; // move launcher every frame } //constructor function Launcher () { laser= new Sound (); laser.attachSound ('laser'); littleShipExplode= new Sound (); littleShipExplode.attachSound ('littleShipExplode'); } }