Problema com a batalha

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Problema com a batalha

Mensagem por patoki em Seg 06 Abr 2009, 15:08

Estou criando um jogo em que o estilo de batalha e parecido com o do pokemon, mas hoje deparei me com um erro! Quando o ataque colidia com o inimigo, o inimigo perdia a vida toda de uma vez, em vez de perder apenas 17, alguem me ajuda?

patoki

Número de Mensagens : 175
Idade : 20
Data de inscrição : 19/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por Borgo em Seg 06 Abr 2009, 16:01

olá patoki

O que pode estar acontecendo é o seguinte:
Um jogo roda a aproximadamente 30 quadros por segundo, cada ação gerada pelo jogo representa um quadro.

Vamos imaginar a seguinte situação:
Você possui 10 vidas.
Se uma bolinha encostar na outra, perderá uma vida, ok?

( ) ----> <----( )


Agora, imagine que uma bolinha esteja indo de encontro a outra, quando colidirem, você perderá uma.
( )( ) – colisão

Porém, no próximo quadro... elas continuam em colisão!!!
( () ) menos uma vida
E no próximo
( ( ) ) menos outra vida
E no próximo
(( )) e outra...
Até elas passarem uma pela outra...
<----( ) ( )----->
Até aqui, deve ter ido embora umas 30 vidas!! Mesmo que houve apenas uma colisão.


Existem três soluções para isso:
1 – um dos objetos devem ser apagados assim que encontar no outro, assim, encostou, morreu, sumiu só uma vida.

2- algumas vezes, não podemos destruir o objeto pois o precisamos para que complete a animação. Podemos então trocar os objetos...
Ex.: a bolinha 1 bate no quadrado, a bolinha 1 se transforma em uma segundo bolinha, com a mesma imagem, porém, objeto diferente.

E a forma mais developer (e correta):
3- criar uma variável para a bolinha (ou o poder) no create, crie uma variável chamada, por exemplo, de “usado” e atribua o valor 0
No Pokémon, no evento de colisão com o poder, coloque o seguinte:
- se usado = 0 então -17 de sangue (IF usado=0 then sangue-=17) --- o sinal “-=” representa que será subtraído 17 pelo que já existe
- coloque para o objeto “other” (que no caso, o “other” do Pokémon, seria o poder, certo?) usado=1
-usado=1

O que ele faz:
Quando o poder encostar no pokemon e se a variavel usado for igual a 0, tirará o sangue e marcará como usado =1!!

Espero ter ajudado.

Borgo

Número de Mensagens : 69
Idade : 29
Data de inscrição : 06/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.neonerds.com.br

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por patoki em Seg 06 Abr 2009, 16:29

Sim, mas agora como torno a variavel usado de novo para o valor 0?

*O jogo nao e pokemon, o sistema de batalha e que e parecido!

patoki

Número de Mensagens : 175
Idade : 20
Data de inscrição : 19/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por Borgo em Seg 06 Abr 2009, 16:40

rsrsrs eu percebi que não era o pokemon depois que postei.
a variavel usado é criada junto com o objeto de poder, na ação create, e ela é local.

ou seja, se você tiver 3 poderes, cada um vai ter a sua variavel "usado" independente, isto é, mesmo que um dos objetos dos poderes for usado, somente a sua variável será alterada, e não às dos demais.
Ai depende muito de como funciona o seu game, eu normalmente programo de forma que exista somente um único objeto no jogo, o restante é programado no evento draw...

Borgo

Número de Mensagens : 69
Idade : 29
Data de inscrição : 06/01/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.neonerds.com.br

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por Anderson3d em Seg 06 Abr 2009, 18:29

borgo esta correto, esse é o princípio da lógica dos jogos de luta tipo street fighter

Anderson3d

Ranking : Nota A
Número de Mensagens : 1479
Idade : 33
Data de inscrição : 15/02/2009
Notas recebidas : A - A
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por patoki em Ter 07 Abr 2009, 05:52

Brigado!

patoki

Número de Mensagens : 175
Idade : 20
Data de inscrição : 19/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema com a batalha

Mensagem por Conteúdo patrocinado Hoje à(s) 08:14


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum