Publicidade
|
|
Dúvida no Tutorial do Jogo da Nave Problema com os tiros - Ao Hugo Ferreira
#1
Posted 29 April 2004 - 02:02 AM
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
#2
Posted 29 April 2004 - 11:46 AM
#3
Posted 29 April 2004 - 03:36 PM
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
#4
Posted 29 April 2004 - 04:09 PM
#6
Posted 30 April 2004 - 02:03 AM
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
#8
Posted 30 April 2004 - 01:16 PM
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 |
#9
Posted 01 May 2004 - 01:46 AM
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
#11
Posted 01 May 2004 - 04:53 PM
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
#13
Posted 02 May 2004 - 03:01 AM
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
#14
Posted 02 May 2004 - 04:06 AM
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
#15
Posted 03 May 2004 - 09:31 AM
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!
#16
Posted 04 May 2004 - 04:02 AM
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
#17
Posted 04 May 2004 - 09:50 AM
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!
Share this topic:
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Indústria de jogos na internet cresce 73% na China
|
Notícias |
Notícias
|
|
|
|
Cientistas fazem chip para carregar iPod com batimentos cardíacos
|
Notícias |
Notícias
|
|
|
|
Movimentação de personagem com cliques
Alguns problemas...pode ajudar? |
Desenvolvimento de Jogos |
Fat
|
|
|
|
PSP ganhará primeiro jogo com dois discos
|
Notícias |
Notícias
|
|
|
|
Ericsson compra ativos GSM da Nortel na América do Norte
|
Notícias |
Notícias
|
|
|
|
Microsoft fecha rede de PCs zumbis e 'liberta" computadores
|
Notícias |
Notícias
|
|
|
|
Topo
Bem interessante seria mostrar como se |
Fireworks |
cesarmg
|
|
|
|
Mensagem do PARETA a comunidade
Sobre 2005 |
Outros |
0ml
|
|
Publicidade
|
|

Help













