/* Fabricio C Zuardi VII Semana da ComputaŤ‹o ICMC - USP, Sao Carlos 19 de Outubro de 2004 */ stop(); //Constantes ALTURA = Stage.height; LARGURA = Stage.width; VNAVE = 15; VASTEROIDE = 20; //Valores iniciais nave_mc.energia = 100; nave_mc.vidas = 3; nave_mc.vulneravel = true; nave_mc.vx = 0; nave_mc.vy = 0; ast_cont = 0; //---ASTEROIDES---\\ function mandaAsteroide(){ var frame = Math.round(Math.random()*ast_mc._totalframes) ast_mc.duplicateMovieClip("ast_"+ast_cont,ast_cont); _root["ast_"+ast_cont].onEnterFrame = moveAsteroide; _root["ast_"+ast_cont].vx = VASTEROIDE; _root["ast_"+ast_cont]._y = Math.random()*ALTURA; _root["ast_"+ast_cont].gotoAndStop(1+frame) ast_cont++; } function moveAsteroide(){ this._x -= this.vx; //se colidiu if((this.hitTest(nave_mc))&&(nave_mc.vulneravel)){ //danifica a nave nave_mc.energia -= 10; if(nave_mc.energia <=0){ //morreu nave_mc.vulneravel=false; nave_mc.gotoAndStop("explosao"); nave_mc.vidas--; if(nave_mc.vidas>=0){ //ainda tem vidas extras //recarrega a energia nave_mc.energia = 100; //atualiza display de vidas vidas_mc.gotoAndStop(4-nave_mc.vidas); }else{ gotoAndStop("gameover") } } //atualiza o display de energia energybar_mc.energy_mc._xscale = nave_mc.energia; //remove o asteroide this.removeMovieClip(); } //se saiu da tela if(this._x<0){ //remove o asteroide this.removeMovieClip(); } } intervalo = setInterval(mandaAsteroide,1000) //-----NAVE------\\ function fimExplosao(){ nave_mc.gotoAndStop("reentrada") } function fimReentrada(){ nave_mc.vulneravel = true; nave_mc.gotoAndStop("inicio") } // vy: velocidade horizontal // vx: velocidade vertical nave_mc.onKeyDown = function(){ if(Key.getCode() == Key.UP){ nave_mc.vy = -VNAVE; } if(Key.getCode() == Key.DOWN){ nave_mc.vy = +VNAVE; } if(Key.getCode() == Key.LEFT){ nave_mc.vx = -VNAVE; } if(Key.getCode() == Key.RIGHT){ nave_mc.vx = +VNAVE; } } nave_mc.onKeyUp = function(){ if((Key.getCode() == Key.UP)||(Key.getCode() == Key.DOWN)){ nave_mc.vy = 0; } if((Key.getCode() == Key.LEFT)||(Key.getCode() == Key.RIGHT)){ nave_mc.vx = 0; } } // registra o nave_mc como listener do teclado Key.addListener(nave_mc); //atualiza posicao da nave a cada enterframe baseado nas velocidades atuais nave_mc.onEnterFrame = function (){ this._x += this.vx; this._y += this.vy; }