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.
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"
{
name: "bomba",
type: "image",
src: "data/bomba.png"
}
Feito isso, pronto!!!
Brincadeira, temos que declarar o nosso elemento, e ele será um EntityObject.
Brincadeira, temos que declarar o nosso elemento, e ele será um EntityObject.
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.
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.