..:: MX Studio Fóruns ::..: Dúvida no Tutorial do Jogo da Nave - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dúvida no Tutorial do Jogo da Nave Problema com os tiros - Ao Hugo Ferreira

#1 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 29 April 2004 - 02:02 AM

Eu não sei bem se é pra eu postar essa dúvida aqui, mas eu estava fazendo o tutorial do Jogo da Nave como exercício, e vi ´que eram para postarem as dúvidas no fórum. Estou postando em "Tutoriais e Artigos" e "Flash e ActionScript"!

Algo começa a dar errado a partir do seguinte momento: " Fazer com que a nave atire ". O que acontece é que os tiros não saem da minha nave, o mcTiro fica fora do palco como ensinado no Tutorial, mas quando eu aperto o espaço, ele atira, mas do lado de fora do palco, e depois de um tempo o tiro demora pra sair até que o computador fica até meio travado... Algo errado na Duplicação de MCs eu acho. Deve ter algo errado no script, pq eu fiz e reviz vááárias vezes.

O script do meu mcTiro está assim:

"
// quando o clip carregar
onClipEvent (load) {
minY = ..:minY;
// mínimo em Y
maxY = ..:maxY-_height;
// máximo em Y
minX = ..:minX;
// mínimo em X
maxX = ..:maxX-_width;
// máximo em X
speed = 7;
// velocidade da nave;
maxtiros = 20;
// máximo de tiros que a nave pode soltar por sessão
atirados = 0;
// tiros que a nave já soltou na sessão atual
function atirar() {
// função que faz a nave atirar
// se o número de tiros "atirados" for menor que o permitido
if (atirados<maxtiros) {
// pega o próximo nivel a ser usado
lvl = ..:getNextDepth();
// duplica o mc do tiro com um nome diferente de tiro
// vai ficar tipo tiro1,tiro2 etc...
..:tiro.duplicateMovieClip('tiro'+lvl, lvl);
// coloca o tiro no meio da nave em _x
_parent['tiro'+lvl]._x = _x+_width/2;
// coloca o tiro na ponta nave em _y
_parent['tiro'+lvl]._y = _y;
// incrementa a variável de tiros "atirados"
atirados++;
}
// fim do if
}
// fim da função
}
// fim do onClipEvent
// cada vez que passar pelo quadro
onClipEvent (enterFrame) {
// O tiro só irá andar se o nome do mc for diferente de TIRO, logo
// se o nome for diferente de tiro
if (_name != 'tiro') {
// o tiro anda
this._y -= speed;
}
// fim do if
// se a posição em _y for menor que o mínimo de _y permitido (minY)
if (_y<..:minY) {
// remove o movieClip. Quando remover, será executada ação onUnload
this.removeMovieClip();
}
// fim do if
// ****************** Atirar *******************
// se a barra de espaços estiver pressionada, a nave atira =)
if (Key.isDown(Key.SPACE)) {
atirar();
}
}
// fim do onClipEvent
"

Muito obrigado pela atenção,

Fellipe Abreu
0

#2 User is offline   SOAD 

  • Group: Membros
  • Posts: 473
  • Joined: 15-January 04

Posted 29 April 2004 - 11:46 AM

o meu tbem ta dando erro , o tiro sai do lado da nade, nao da ponta ..
0

#3 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 29 April 2004 - 03:36 PM

SOAD,

Eu estou com dúvidas, mas talvez eu possa te ajudar... Isso deve ser o ponto de registro do Movie Clip. Confira se quando você converteu pra MC, vc seguiu certo a parte do registro.

E por favor, compare nossos códigos... porque pelo menos a sua nave atira.... RSRSRS!

Abraços,

Fellipe Abreu
0

#4 User is offline   SOAD 

  • Group: Membros
  • Posts: 473
  • Joined: 15-January 04

Posted 29 April 2004 - 04:09 PM

hehehehe, ok cara ... chegando em casa eu confiro, o arquivo ta la
0

#5 User is offline   DuRanG 

  • Group: Membros
  • Posts: 380
  • Joined: 09-January 04

Posted 29 April 2004 - 09:34 PM

poste seu fla
0

#6 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 30 April 2004 - 02:03 AM

Durang . . .

Eu não encontrei um jeito aqui de disponibilizar o meu FLA não! Fui até nas Regras e não tinha anda sobre arquivos. Vc não tá confundindo com o fórum da wmonline?! RSRS

Se você me der seu e-mail ou autorizar eu pegar ele nos seus detalhes eu te mando...

Obrigado,

Fellipe Abreu
0

#7 User is offline   DuRanG 

  • Group: Membros
  • Posts: 380
  • Joined: 09-January 04

Posted 30 April 2004 - 08:17 AM

coloque em um servidor e poste o endereço aqui
0

#8 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1265
  • Joined: 15-January 04

Posted 30 April 2004 - 01:16 PM

Fellipe Abreu,

substitua isso
CODE

if (atirados<maxtiros) {
// pega o próximo nivel a ser usado
lvl = ..:getNextDepth();
// duplica o mc do tiro com um nome diferente de tiro
// vai ficar tipo tiro1,tiro2 etc...
..:tiro.duplicateMovieClip('tiro'+lvl, lvl);
// coloca o tiro no meio da nave em _x
_parent['tiro'+lvl]._x = _x+_width/2;
// coloca o tiro na ponta nave em _y
_parent['tiro'+lvl]._y = _y;
// incrementa a variável de tiros "atirados"
atirados++;
}// fim do if



por isso

CODE

if (atirados<maxtiros) {
 // pega o próximo nivel a ser usado
 lvl = ..:getNextDepth();

 // duplica o mc do tiro com um nome diferente de tiro
 // vai ficar tipo tiro1,tiro2 etc...
 ..:tiro.duplicateMovieClip('tiro'+lvl, lvl);

 // coloca o tiro no meio da nave em _x
 _parent['tiro'+lvl]._x = this._x+this._width/2;

 // coloca o tiro na ponta nave em _y
 _parent['tiro'+lvl]._y = this._y;

 // incrementa a variável de tiros "atirados"
 atirados++;

} // fim do if

0

#9 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 01 May 2004 - 01:46 AM

Hufersil,
Eu modifiquei o código que está dentro do mcTiro para este:

// quando o clip carregar
onClipEvent (load) {
minY = ..:minY;
// mínimo em Y
maxY = ..:maxY-_height;
// máximo em Y
minX = ..:minX;
// mínimo em X
maxX = ..:maxX-_width;
// máximo em X
speed = 7;
// velocidade da nave;
maxtiros = 20;
// máximo de tiros que a nave pode soltar por sessão
atirados = 0;
// tiros que a nave já soltou na sessão atual
function atirar() {
// função que faz a nave atirar
// se o número de tiros "atirados" for menor que o permitido
if (atirados<maxtiros) {
// pega o próximo nivel a ser usado
lvl = ..:getNextDepth();
// duplica o mc do tiro com um nome diferente de tiro
// vai ficar tipo tiro1,tiro2 etc...
..:tiro.duplicateMovieClip('tiro'+lvl, lvl);
// coloca o tiro no meio da nave em _x
_parent['tiro'+lvl]._x = this._x+this._width/2;
// coloca o tiro na ponta nave em _y
_parent['tiro'+lvl]._y = this._y;
// incrementa a variável de tiros "atirados"
atirados++;
}
// fim do if
}
// fim da função
}
// fim do onClipEvent
// cada vez que passar pelo quadro
onClipEvent (enterFrame) {
// O tiro só irá andar se o nome do mc for diferente de TIRO, logo
// se o nome for diferente de tiro
if (_name != 'tiro') {
// o tiro anda
this._y -= speed;
}
// fim do if
// se a posição em _y for menor que o mínimo de _y permitido (minY)
if (_y<..:minY) {
// remove o movieClip. Quando remover, será executada ação onUnload
this.removeMovieClip();
}
// fim do if
// ****************** Atirar *******************
// se a barra de espaços estiver pressionada, a nave atira =)
if (Key.isDown(Key.SPACE)) {
atirar();
}
}
// fim do onClipEvent


Mas não mudou nada, nada...

Como o Durang sugeriu, eu estou disponibilizando o meu arquivo no endereço abaixo:
www.fellipeabreu.com.br/jogo.fla

Muito obrigado,

Fellipe Abreu
0

#10 User is offline   DuRanG 

  • Group: Membros
  • Posts: 380
  • Joined: 09-January 04

Posted 01 May 2004 - 01:12 PM

aqui
0

#11 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 01 May 2004 - 04:53 PM

Durang . . .

Poxa, os tiros saem do meio da nave, isso está dando certinho kra... valew mesmo.

Só que continuo com um problema:

No começo, vc aperta o Espaço e os tiros saem, mas a partir da 4ª ou 5ª vez os tiros não saem mais. Esse problema já existia memso com o erro de antes dos tiros saindo do lugar errado.

Obrigado,

Fellipe Abreu
0

#12 User is offline   DuRanG 

  • Group: Membros
  • Posts: 380
  • Joined: 09-January 04

Posted 01 May 2004 - 10:00 PM

isso é por causa do maxtiros
0

#13 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 02 May 2004 - 03:01 AM

Aí Durang valew kra.... Consegui concertar.

So uma coisa... Na sequência do Tutorial do jogo, com as mudanças que você fez no meu código, não vai dar nenhum problema não?!

Obrigado,

Fellipe Abreu
0

#14 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 02 May 2004 - 04:06 AM

Durang . . .

Me desculpe por estar perguntando tanto (RSRSRS), mas tme algo de errado no Tutorial.... Tentei fazer a 2ª parte e também deu erro no tiro... E tme um outro probleminha...

1º problema: O tiro do inimigo não chega até a nave, porque quando o tiro é "solto" ele fica no mesmo lugar, ele não se movimenta.

2º problema: Nas ações do 1º frame da camada "Ações", está:

minY = 0;
maxY = 415;
minX = 0;
maxX = 347;

Esse comando acima fui eu quem modificou, porque com os valores que estavam, a nave ficava saindo por baixo do filme e pelo lado direito. Mas dessa forma, as naves inimigas quando vão chegando perto da nave vão desaparecendo. Quando era para essas naves inimigas desaparecerem quando já estivessem saido por baixo do filme.

PS: Estou disponibilizando o arquivo no endereço: www.fellipeabreu.com.br/jogo2.fla

Obrigado,

Fellipe Abreu
0

#15 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1265
  • Joined: 15-January 04

Posted 03 May 2004 - 09:31 AM

vc está usando o Flash MX ou MX 2004?

se estiver usando o MX 2004, certifique-se que o Flash está usando o actionscript 1.0 e não o 2.0

e outra:

estou olhando o fla que vc postou... vc esqueceu de colocar um monte de coisas!
por exemplo: o máximo de tiros.. vc esqueceu de colocar no movie clip de tiro da sua nave que, quando ele remover o movie clip, deve decrementar a var atirados! por isso que quando soltava 20 tiros ela parava de atirar! (isto está na primeira parte do tutorial, na ação onUnload do movie clip de tiro da nave)

os tiros das naves inimigas não estão saindo pelo seguinte: vc renomeou a função getNextDepth para getaDepth!!! e esqueceu de trocar o nome da função na onde se duplica o movie clip do tiro inimigo que é dentro da nave inimiga! (isto está na parte 2)

os inimigos não estão sendo duplicados por que no movie clip da nave inimiga você não o instanciou como inimigo1 !!! (está na parte 2)

as naves inimigas estão sumindo antes de chegar na sua nave pelo seguinte: você colocou que o máximo que a nave inimiga pode chegar é ..:maxY-_height... está certo. Só que vc esqueceu de fazer isso também na sua nave! (está na parte 2)

olha seu código:

CODE

onClipEvent (enterFrame) {
if(Key.isDown(Key.UP)) _y -= _parent.speed;
if(_y <  _parent.minY) _y =  _parent.minY;
if(Key.isDown(Key.DOWN)) _y += _parent.speed;
if(_y >  _parent.maxY) _y =  _parent.maxY;
if(Key.isDown(Key.LEFT)) _x -= _parent.speed;
if(_x <  _parent.minX) _x =  _parent.minX;
if(Key.isDown(Key.RIGHT)) _x += _parent.speed;
if(_x >  _parent.maxX) _x =  _parent.maxX;
if (Key.isDown(Key.SPACE)) _parent.atirar();
}


e o correto é
CODE

onClipEvent (enterFrame) {
if(Key.isDown(Key.UP)) _y -= _parent.speed;
if(_y <  _parent.minY) _y =  _parent.minY;
if(Key.isDown(Key.DOWN)) _y += _parent.speed;
if(_y >  _parent.maxY-_height) _y =  _parent.maxY-_height;
if(Key.isDown(Key.LEFT)) _x -= _parent.speed;
if(_x <  _parent.minX) _x =  _parent.minX;
if(Key.isDown(Key.RIGHT)) _x += _parent.speed;
if(_x >  _parent.maxX-_width) _x =  _parent.maxX-_width;
if (Key.isDown(Key.SPACE)) _parent.atirar();
}





Dê uma olhada no seu fla, tenta corrigir esses erros!

@braços!
0

#16 User is offline   Fellipe Abreu 

  • Group: Desafio Flash
  • Posts: 63
  • Joined: 27-April 04

Posted 04 May 2004 - 04:02 AM

hufersil,

Você me desculpa qualquer coisa kra.

Você reparou que eu tinah esquecido um monte de coisas, não porque eu não fiz por falta de atenção, pelo contrário, eu fiz e refiz várias vezes. Só que como não consegui e li no tutorial que qualquer dúvida era só postar aqui. Eu postei e o Durang me ajudou. Mas pra ela funcionar direito, ele tirou alguns códigos.

Se você pegar minhas primeiras mensagens, você verá que lá vai estar o arquivo original que eu fiz de acordo com o tutorial.

Abraços,

Fellipe Abreu
0

#17 User is offline   hufersil 

  • Group: Moderadores
  • Posts: 1265
  • Joined: 15-January 04

Posted 04 May 2004 - 09:50 AM

Fellipe...

Fiz esses dois arquivos em 10 minutos, simplesmente copiando e colando os códigos que estavam no tutorial... a única parte que está faltando no tutorial são duas barras depois da chave abaixo da linha o tiro anda, na primeira parte do tutorial, onde está escrito fim do if.

Dá uma olhada neles e vc vai ver como está exatamente igual ao do tutorial.

Ps.: o arquivo 1 se refere a primeira parte do tutorial e o segundo, a segunda parte do tutorial.

http://www.colegiomonjolo.com.br/parte1.fla
http://www.colegiomonjolo.com.br/parte2.fla

@braços!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)