Professional Documents
Culture Documents
Olá pessoal,
Que tal começar a aprender a arte de criar aqueles joguinhos bem legais feitos em flash?
Começarei uma sequência de tutorias que mostraráo os mais importantes fundamentos
para começar a desenvolver um game.
Pré-requisitos:
Objetivo:
Vamos criar agora o movieClip que representará o tiro. Crie um círculo fora do stage, de
modo que ele não apareça na animação final. Selecione-o e pressione F8, para
transformar em movieClip.Dê o nome de tiro. Certifique-se que o movieClip círculo se
chama realmente tiro. Para issso basta clicar no círculo e verificar na barra de
propriedades.
1.
2. onClipEvent(enterFrame)
3. {
4. if(_name != "tiro")//verificação que serve para que sejam executados apenas
as cópias do tiro, não o verdadeiro
5. {
6. this._y-=30;
7. if(this._y <0)//se o tiro passou do y=0 removemos o tiro
8. this.removeMovieClip();
9. if(this.hitTest(_root.inimigo)) //verifica se tiro colidiu com o inimigo
10. {
11. _root.inimigo.life=0; //zeramos o life, um tiro só é fatal
12. this.removeMovieClip(); //sumimos com o tiro da tela
13. }
14. }
15. }
16.
No código, é importante destacar o uso do método hiTest(), que é muito importante para
a detecção de colisão. Ele é responsável em dizer se dois movieClips colidiram ou não.
Esse é o life do inimigo. Agora volte à cena principal e selecione o inimigo. Aperte F9
depois coluque o seguinte código:
1. onClipEvent(enterFrame)
2. {
3. /*Verificamos se o inimigo morreu, vendo se o seu life é menor ou igual a
zero*/
4. if(life<=0)
5. {
6. _root.cont2++;
7. /*Criamos uma explosão, pois o inimigo morreu*/
8. _root.explosao.duplicateMovieClip("explode"+_root.cont2,
_root.cont2,_root.cont2);
9.
10. _root["explode"+_root.cont2]._x = this._x;
11. _root["explode"+_root.cont2]._y = this._y;
12.
13. this._x = random(300); //o inimigo volta numa posição randômica
14. this._y = -150;
15.
16. this.life = 100; //voltamos o life do inimigo
17.
18. }
19. else
20. {
21. this._y+=10; //avança o inimigo em sua direção
22. if(this._y > 300) //verifica se o inimigo ultrapassou o limite máximo da tela
23. {
24. /*Se o inimigo ultrapassou sua nave, vc pode fazer o que quizer a partir
daqui
25. eu optei por fazer o inimigo começa de novo a descer.
26. */
27. this._y = -20;
28. this.removeMovieClip();
29. }
30. }
31. }
O código acima indica que quando o life do inimigo acabar vai ser feita uma duplicata
do movieClip explosão que vai aparecer exatamente no local onde houve a colisão com
o tiro. Senão ocorre colisão alguma ele entra no else e continua avançando em direção à
nave que controlamos.
1. onClipEvent(enterFrame)
2. {
3. /*essa verificação serve para que apenas as explosão que serão criadas
dinamicamente
4. sejão executadas*/
5. if(_name != "explosao")
6. {
7. if(this._alpha > 0) //serve para dar um efeito de explosão
8. this._alpha -= 5;
9. else
10. this.removeMovieClip();
11. }
12. }