ren811

NaveFinal

Sep 22nd, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //21092012
  2. import flash.events.Event;
  3. import flash.events.TimerEvent;
  4. import flash.utils.Timer;
  5.  
  6. addEventListener(Event.ENTER_FRAME,loop);
  7. stage.addEventListener(KeyboardEvent.KEY_DOWN,teclado);
  8.  
  9. // declara variaveis globais
  10. var balas:Array = new Array();
  11. var bala:Bala = new Bala();
  12.  
  13. // bala = objeto
  14. // balas = vetor que contém as balas
  15.  
  16. var inimigos:Array = new Array();
  17. var inimigo:Inimigo = new Inimigo();
  18.  
  19. // quadrado = objeto
  20. // quadrados = vetor que contem os quadrados
  21.  
  22. var estrelas:Array = new Array();
  23. var estrela:Estrela = new Estrela();
  24.  
  25. var timerInimigo:Timer = new Timer(1500);
  26. var timerEstrelas:Timer = new Timer(10);
  27.  
  28. timerInimigo.addEventListener(TimerEvent.TIMER,instanciaInimigos);
  29. timerInimigo.start();
  30.  
  31. timerEstrelas.addEventListener(TimerEvent.TIMER,instanciaEstrelas);
  32. timerEstrelas.start();
  33.  
  34. var minNum:Number = 1;
  35. var maxNum:Number = 5;
  36.  
  37. function instanciaInimigos(evt:TimerEvent){
  38.     inimigo = new Inimigo();
  39.     inimigo.x = Math.random() * stage.stageWidth;
  40.     inimigo.y = 5;
  41.     addChild(inimigo);
  42.     inimigos.push(inimigo);
  43. }
  44.  
  45. // ESCALA ALEATORIA
  46. function randomScale(minNum:Number,maxNum:Number){
  47.     return(Math.floor(Math.random()* 6));
  48. }
  49.  
  50. function instanciaEstrelas(evt:TimerEvent){
  51.     estrela.scaleY = randomScale(minNum,maxNum); // Escala da Estrela
  52.     estrela = new Estrela();
  53.     estrela.x = Math.random() * stage.stageWidth;
  54.     estrela.y = 0;
  55.     addChild(estrela);
  56.     estrelas.push(estrela);
  57.     for (var e:int = 0; e < estrelas.length; e++){
  58.         estrelas[e].y+=15;
  59.     }
  60. }
  61.  
  62. // FUNCAO ALTERADA 17/09/12 - CONSERTADA PELO PROFESSOR DALTON
  63. function loop(evt:Event):void{
  64.     if (nave.x < 0){
  65.         nave.x = 0;
  66.     }
  67.     if (nave.x > 550){
  68.         nave.x = 550;
  69.     }
  70.     if (nave.y > 400){
  71.         nave.y = 400;
  72.     }
  73.     if (nave.y < 50){
  74.         nave.y = 50;
  75.     }
  76.  
  77. // Desloca Bala
  78.     for (var k:int = 0; k < balas.length; k++){
  79.         balas[k].y -= 10;
  80.     }
  81. // Desloca e Testa Quadrado
  82.     for (var j:int = 0; j < inimigos.length; j++){
  83.         inimigos[j].y += 4;
  84.     // Testa Bala
  85.     // SOLUÇÃO ALTERNATIVA: if (j==0) {balas[i].y-=10}
  86.    
  87.         for (var i:int = 0; i < balas.length; i++){
  88.             if (balas[i].hitTestObject(inimigos[j])){
  89.                 removeChild(inimigos[j]);
  90.                 inimigos.splice(j,1);
  91.                 removeChild(balas[i]);
  92.                 balas.splice(i,1);
  93.                 trace("EXPLODE");
  94.                 break;
  95.             }
  96.             else if (balas[i].y < 0){
  97.                 removeChild(balas[i]); // REMOVE OS QUADRADOS DESNECESSARIOS
  98.                 balas.splice(i,1);     // Remove apenas 1 objeto do vetor. Se fosse o caso de
  99.                 break;                 // remover 2 objetos (o objeto x e o próximo no vetor)
  100.                                        // seria feito balas.splice(i,2)]
  101.             }
  102.         }
  103.         if (nave.hitTestObject(inimigos[j])){
  104.             trace("COLIDIU");
  105.             removeChild(nave);
  106.             break;
  107.         }
  108.     }
  109. }
  110.  
  111. function teclado(evt:KeyboardEvent):void{
  112.     switch(evt.keyCode) {
  113.         case Keyboard.LEFT:
  114.             nave.x-=20;
  115.         break;
  116.         case Keyboard.RIGHT:
  117.             nave.x+=20;
  118.         break;
  119.         case Keyboard.UP:
  120.             nave.y-=20;
  121.         break;
  122.         case Keyboard.DOWN:
  123.             nave.y+=20;
  124.         break;
  125.         case Keyboard.SPACE:
  126.             bala = new Bala();
  127.             bala.x = nave.x;
  128.             bala.y = nave.y;
  129.             addChild(bala);
  130.             balas.push(bala);
  131.         break;
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment