quarta-feira, 8 de maio de 2013

Criando uma Bomba Ver. 1


Olá, esse é de fato o primeiro post em relação a desenvolvimento. Nele vamos aprender a criar uma bomba, esse elemento é constantemente usado em jogos, podemos citar o famoso Angry Birds e Commandos 3.


Basicamente o que termos que ter em mente é o seguinte:

1 -  Toda bomba tem o seu campo de ação (a areá que ela pode atingir).
2 - Algumas bombas tem um tempo programado, ou um tempo referente a queima do pavio.

Resolvi dividir esse assunto em três post: Na primeira versão, vamos criar uma bomba capaz de matar os inimigo e que tenha um tempo para explodir. Na segundo, abordaremos uma implementação em relação à distância (quem está mais longe é menos afetado do que o mais perto). E no terceiro, criaremos uma bomba que tenha a trajetória parabólica (balística) que pode ser aplicado a qualquer objeto.





Vamos lá.... Segue uma imagem da bomba para ser usada na nossa implementação.

bomba.png


Primeiramente vamos carregar essa imagem no g_resources.



    name: "bomba",
    type: "image",    
    src: "data/bomba.png" 

}



Feito isso,  pronto!!!

 Brincadeira, temos que declarar o nosso elemento, e ele será um EntityObject.




Agora vem a parte boa, em update vamos fazer:





Variáveis:

this.cont  = contador, percorrerá todo o vetor de elementos obtidos com o getEntiyByName;
this.inimigo = vetor de elementos obtidos com o getEntiyByName;
this.status = especifica o estado da bomba;
this.alcance = distância do alcance da bomba.
this.tempoAtual = obter o tempo corrente;
this.tempoInicial = especifica o tempo inicial;
this.tempoAtual - this.tempoInicial = é o intervalo que a bomba ficará "queimando"

Métodos Usados:

me.timer.getTimer(); = retorna o tempo corrente (variação em milissegundo)
me.game.remove(object) = remove um objeto do game.

Comentário:

Se o estado é igual a "lancado",  verificamos se o tempo atual menos o tempo inicial é maior ou igual ao nosso limite, se sim passamos para o estado "explodindo". Nesse estado, como método getEntityByName() obtemos um vetor com os elementos do tipo "inimigo" da fase. Percorremos o vetor e comparamos a distância da bomba e o imigo, caso esta esteja dentro do alcance eliminamos os inimigos.


É isso, qualquer dúvida  deixa o comentário.




Traduzir para Chinês Traduzir para Espanhol Traduzir para Italiano Traduzir para Françês Traduzir para Inglês Traduzir para Alemão Traduzir para Japonês Traduzir para Russo

Nenhum comentário:

Postar um comentário

Translate