Powered By Blogger

terça-feira, 10 de maio de 2011

Como criar um jogo de nave no flash?

Abaixo confira um vídeo mostrando como fazer um jogo em flash, os códigos encontram-se abaixo do vídeo.

o jogo do vídeo é o Space Combat e pode ser jogado online em:

http://megaswf.com/serve/1110165/








códigos:



Frame 1:


stop();


var cont:Number = new Number();
var cont2:Number = new Number();
var atirar:Boolean = true;  // <= VARIÁVEL QUE ADICIONEI PARA CONTROLAR O FLUXO DE TIROS

vida2=4
cont=0; //contadores de tiros
count2=0; //contadores de explosões
onEnterFrame=function()
{
    /*verificamos quais teclas o usuário está precionando
    E também verificando quais os limites da tela
    */
    if(Key.isDown(Key.LEFT) && nave._x >=20)
        nave._x -=20;
    if(Key.isDown(Key.RIGHT) && nave._x <500)
        nave._x +=20;
 
 
   
    if (!(inimigo.hitTest(nave))){
vida = false;
//Se a nave for atingida
} else if (inimigo.hitTest(nave)){
if (vida!=true){
vida2 -= 1;
vida = true;
}

_parent.vida2=false
//Se a vida chegar a zero:
if (vida2<=0) {
//vai para a frame 12
this.gotoAndStop(2);
}

 
   
   
}
onMouseDown = function()
{
    /*Verifica se eu posso atirar*/
    if(atirar)
    {
        _root.cont++;
        _root.tiro.duplicateMovieClip("tiro"+_root.cont,_root.cont,_root.cont); //duplicamos o tiro
        /*fazemos com que a réplica apareça na frente da nave*/
        _root["tiro"+_root.cont]._y = nave._y+10;
        _root["tiro"+_root.cont]._x = nave._x+10;
        atirar = false;   // <= ÚNICO MOMENTO QUE SETO ATIRAR PARA FALSE, não permitindo um tiro após o outro
    }
}
}




tiro:

onClipEvent(enterFrame)
{
 musica = new Sound();
musica.attachSound("som");
sound = new Sound();
sound.attachSound("laser");

_parent.playing = true
    if(_name != "tiro")
    {
        this._y-=30;
        if(this._y < 0) // VERIFICAÇÃO NOVA, eu defini que quando o tiro chegar no limite superior que poderei atira novamente
            _root.atirar = true;
   sound.start(0, 1);
           
        if(this._y <0)//se o tiro passou do y=0 removemos do filme
            this.removeMovieClip();
       
        if(this.hitTest(_root.inimigo)) //verifica se tiro colidiu com o inimigo
        {
   musica.start(0, 1);
            _root.atirar = true; //QUANDO ACERTAR O INIMIGO TAMBÉM PODEREI ATIRAR NOVAMENTE
            _root.inimigo.life=0; //zeramos o life, um tiro só é fatal
            this.removeMovieClip(); //sumimos com o tiro da tela
           
        }
    }
}


inimigo:



onClipEvent(enterFrame)
{

   /*Verificamos se o inimigo morreu, vendo se o seu life é menor ou igual a zero*/
   if(life<=0)
   {
      _root.cont2++;
      /*Criamos uma explosão, pois o inimigo morreu*/
     
      this._x = random(200); //o inimigo volta numa posição randômica
      this._y = -150;
      this.life = 100; //voltamos o life do inimigo
   }
   else
   {
      this._y+=10; //avança o inimigo em sua direção
      if(this._y > 300) //verifica se o inimigo ultrapassou o limite máximo da tela
      {
         /*Se o inimigo ultrapassou sua nave, vc pode fazer o que quizer a partir daqui
         eu optei por fazer o inimigo começa de novo a descer.
         */
         this._y = -20;
         this.removeMovieClip();
      }
   }
}

Faça seu game de nave e hospede no mega swf também.


Por Cícero Joceilton da Silva Gomes

Qualquer dúvida ou dica pode postar comentários

até a próxima!!!

Nenhum comentário:

Postar um comentário