jaycebrasil on DeviantArthttp://creativecommons.org/licenses/by-nc-sa/3.0/https://www.deviantart.com/jaycebrasil/art/Nave-Tutorial-259689065jaycebrasil

Deviation Actions

jaycebrasil's avatar

Nave Tutorial

By
Published:
460 Views

Description

DL Download: Nave Tutorial.FLA
[link]
[link]
// Programa criado por Elian Arantes Bassi (jaycebrasil)
// [link]
// Action Script/ Micromidia Flash 5.0
// Codigo digitado no quadro chave ("Scene 1", 1);
// controlando o movimento da nave;
// quando a nave está dentro de um limite;
// a nave se move;
// quando a nave ultrapassa o limite;
// o ponto de inicio se move em direção oposta;
// mas a nave não se move;
if (Key.isDown(Key.Up) ) {
if (nave._y>100) {
nave._y=nave._y-15;
} else {
inicio._y=inicio._y+15;
}
}
if (Key.isDown(Key.Down) ) {
if (nave._y<300) {
nave._y=nave._y+15;
} else {
inicio._y=inicio._y-15;
}
}
if (Key.isDown(Key.LEFT)) {
if (nave._x>150) {
nave._x=nave._x-15;
} else {
inicio._x=inicio._x+15;
}
}
if (Key.isDown(Key.RIGHT)) {
if (nave._x<350) {
nave._x=nave._x+15;
} else {
inicio._x=inicio._x-15;
}
}
//Limites da area de pouso;
if (nave._y>inicio._y-50 && nave._y<inicio._y && nave._x>inicio._x-50 && nave._x<inicio._x+50) {
//Afasta o inimigo;
inimigoX=random ( 500);
inimigoY=-200;
} else {
//apaga as luzes quando a nave sai do limite da area;
inicio.gotoAndPlay(1);
}
//quando a nave muda de direção;
// caso a nave esteja vidada para o lado oposto;
//o a nave e todos elementos ligados a ela invertem;
if (Key.isDown(Key.LEFT) && nave._xscale<0) {
nave._xscale=nave._xscale*-1;
naveMorre._xscale=naveMorre._xscale*-1;
//o tiro só está amarrado em quanto a variavel de controle estiver zerada.;
if (tiroDistancia<1) {
tiro._xscale=tiro._xscale*-1;
}
}
if (Key.isDown(Key.RIGHT) && nave._xscale>0) {
nave._xscale=nave._xscale*-1;
naveMorre._xscale=naveMorre._xscale*-1;
//o tiro só está amarrado em quanto a variavel de controle estiver zerada.;
if (tiroDistancia<1) {
tiro._xscale=tiro._xscale*-1;
}
}
//amarrando os objetos com a posição da nave;
naveMorre._x=nave._x;
naveMorre._y=nave._y;
//o tiro só está amarrado em quanto a variavel de controle estiver zerada.;
if (tiroDistancia<1) {
tiro._x=nave._x;
tiro._y=nave._y;
}
//apertando a barra incrementa a variavel de controle do tiro caso ela esteja zerada;
if (Key.isDown(Key.SPACE) && tiroDistancia<1) {
tiroDistancia++;
}
//caso a variavel de controle do tiro seja maior do que zero ;
//torna o tiro visivel;
if (tiroDistancia<1) {
tiro._visible=0;
} else {
tiro._visible=1;
}
//caso a variavel de controle do tiro seja maior do que zero ela deve ser incrementada até atingir um limite e retornar a zero;
if (tiroDistancia>0) {
tiroDistancia++;
}
if (tiroDistancia>20) {
tiroDistancia=0;
//compara se o tiro está invertido em relação a nave e inverte;
if (tiro._xscale>0 && nave._xscale<0) {
tiro._xscale=tiro._xscale*-1;
}
if (tiro._xscale<0 && nave._xscale>0) {
tiro._xscale=tiro._xscale*-1;
}
}
//caso a variavel de controle do tiro seja maior do que zero ;
//a posição do tiro deve estar amarrada a posição da nave no momento do disparo;
if (tiroDistancia<1) {
tiroX=nave._x;
tiroY=nave._y;
} else {
tiro._x=tiroX;
tiro._y=tiroY;
//Move o tiro para frente ou para tras de acordo com a posição;
if (tiro._xscale>0) {
tiroX=tiroX-20;
} else {
tiroX=tiroX+20;
}
}
//Determina a posição do inimigo em relação ao inicio;
inimigo._x=inimigoX+inicio._x-250;
inimigo._y=inimigoY+inicio._y-250;
//amarrando os objetos com a posição do inimigo;
inimigoMorre._x=inimigo._x;
inimigoMorre._y=inimigo._y;
//Faz o inimigo se mover perseguindo a nave;
if (inimigo._x<nave._x) {
inimigoX=inimigoX+2;
}
if (inimigo._x>nave._x) {
inimigoX=inimigoX-2;
}
if (inimigo._y<nave._y) {
inimigoY=inimigoY+2;
}
if (inimigo._y>nave._y) {
inimigoY=inimigoY-2;
}
//verifica se o tiro foi disparado;
if (tiroDistancia>0 && inimigoExplode<1) {
//incrementa a variavel de controle de destruição do inimigo;
if (tiro._y>inimigo._y-30 && tiro._y<inimigo._y+30 && tiro._x>inimigo._x-50 && tiro._x<inimigo._x+50) {
inimigoExplode++;
}
}
//verifica a variavel de controle da morte do inimigo;
if (inimigoExplode>0) {
inimigoExplode++;
}
//Faz o inimigo reaparecer em um local aleatorio;
if (inimigoExplode>29) {
inimigoExplode=0;
inimigoX=random ( 500);
inimigoY=random ( 500);
}
//controla a animação da morte do inimigo;
if (inimigoExplode<1) {
inimigo._visible=1;
inimigoMorre.gotoAndPlay(1);
inimigoMorre._visible=0;
} else {
inimigo._visible=0;
inimigoMorre._visible=1;
}
//Caso o inimigo atinge a nave incrementa a variavel de controle da morte da nave;
if (nave._y>inimigo._y-30 && nave._y<inimigo._y+30 && nave._x>inimigo._x-50 && nave._x<inimigo._x+50) {
naveExplode++;
}
if (naveExplode>0) {
naveExplode++;
}
//Controla a animação da morte da nave explodindo;
if (naveExplode<1) {
nave._visible=1;
naveMorre.gotoAndPlay(1);
naveMorre._visible=0;
} else {
naveMorre._visible=1;
nave._visible=0;
}
//Reinicia a posição da nave;
if (naveExplode>29) {
naveExplode=0;
nave._x=225;
nave._y=225;
inicio._x=225;
inicio._y=225;
inimigoX=random ( 500);
inimigoY=-200;
}
Image size
550x400px 9.32 KB
Comments2
Join the community to add your comment. Already a deviant? Log In
prettywitchaiko's avatar
Multiplicar a escala por -1 foi muito inteligente
Vou tentar fazer um jogo tambem