quinta-feira, 6 de novembro de 2008

Tutorial - Nosso Primeiro Jogo 2D - Parte 4

Neste tutorial veremos, passo a passo, como criar um jogo 2D simples. Este tutorial foi baseado nos videos Begginers Guide 2D encontrados no site creators.xna.com.

Esta é a quarta parte do nosso tutorial de como criar um jogo 2D com o XNA Game Studio. Aqui veremos como criar as aeronaves inimigas para que apareçam em posições randomicas do canto direito da tela.


Adicionando e Inicializando as Variáveis Relacionadas as Aeronaves

Agora vamos então começar a trabalhar para colocarmos os inimigos no nosso jogo. No arquivo Game1.cs, na classe Game1, abaixo de onde declaramos as variáveis previousgamepadstate e previouskeyboardstate iremos declarar mais uma série de variáveis ligadas as aeronaves inimigas. Assim como fizemos com os mísseis, os inimigos também terão um número máximo e um array, mas além disso teremos as velocidades mínima e máxima possiveis a uma aeronave inimiga, e a altura mínima e máxima onde é possível um inimigo aparecer. Teremos também uma variável que gerará um valor randomico para nós sempre que precisarmos.

Assim como fizemos com os mísseis, temos que inicializar nosso array de inimigos. Vamos então ao método LoadContent() e abaixo do for onde inicializamos nosso array de mísseis vamos instanciar nosso array de inimigos e inicializar cada posição desse array com o uso de um loop.


Atualizando as Aeronaves Inimigas


Depois de inicializar nossos inimigos vamos então ao método Update() e abaixo da chamada ao método UpdateCannonMissiles() vamos fazer outra chamada, só que agora ao método UpdateEnemyPlanes(). Como fizemos no caso dos mísseis, esse método ainda não existe e teremos que implementa-lo.

Para criar o nosso método vamos ao final do método Update() e depois da chave que termina esse método vamos implementar o nosso método UpdateEnemyPlanes(). Esse método irá "matar" as aeronaves inimigas assim que elas forem saindo da tela para que novas aeronaves possam ser desenhadas na tela.

Ainda estamos considerando apenas o caso de a aeronave inimiga "morrer" por sair da tela para redesenha-las. Assim ainda no método UpdateEnemyPlanes() utilizaremos um bloco else logo após o bloco if em que checamos se o inimigo está "vivo". Nesse bloco tornaremos o inimigo vivo de novo e faremos ele nascer em uma nova posição aleatória e com uma nova velocidade aleatória.


Desenhando e Alterando o Tamanho dos Inimigos na Tela


Agora já podemos desenhar as aeronaves inimigas na tela. Usaremos um overload do método Draw do SpriteBatch que nos possibilide alterar a escala da nossa Sprite visto que se desenhassemos a imagem original as aeronaves ficariam muito maiores que o resto dos objetos do jogo e não ficaria tão legal o visual do nosso jogo.

Se não nos esquecemos de nenhum detalhe podemos rodar nosso jogo e teremos aeronaves se movimentando da direita para a esquerda a alturas e velocidades aleatórias.


Resumo


Nesta quarta parte do nosso tutorial de como criar um jogo 2D com o XNA Game Studio vimos como criar e desenhar as aeronaves inimigas na tela em posições e com velocidades aleatórias e também mudando seu tamanho ao desenha-las.

Na quinta parte do nosso tutorial de como criar um jogo 2D com o XNA Game Studio veremos a destruição das aeronaves inimigas devido colisão dos nossos mísseis com as mesmas e também como manter e visualizar a pontuação em nosso jogo.

13 comentários:

JRobertus Kal-El disse...

Oi Leo, tudo bem? Estou aprendendo bastante com seus tutoriais. Nessa parte 4 os aviões inimigos estão loucos na parte direita da tela. Eles ficam oscilando pra cima e pra baixo sem caminhar pela tela. Já conferi o código varias vezes e não achei diferença. O que você acha que pode ser?

Leonardo Nascimento (leocamello) disse...

Olá JRobertus,
Assim que ler esse comentario, entra em contato comigo por e-mail. Assim você pode também me passar seu código para eu dar uma revisada.
Abraços

Anônimo disse...

Quando sai a última parte???
to loco pra terminar.

Anônimo disse...

Oi Leo, esse tutorial ficou muito bem explicado, parabéns. Vc ja tem idéia de quando vai postar a quinta parte? Vlw

Anônimo disse...

A propósito, se for possível explicar como trabalhamos com o movimento do mouse, ao invés do teclado, desde ja agradeço. Algo tipo o jogo Zuma...conhece? Vlw Leo abração!

Anônimo disse...

Oi Leo!
Estou agora me iniciando no XNA. Este tutorial tem sido uma excelente ajuda para mim.
Obrigada, cara!

Anônimo disse...

pode me mandar todo o seu programa pro meu e-mail para eu ver em que estou errando?

meu e-mail é: guilhermoburnett@uol.com.br

MVillan disse...

Leo Camello, exelente tutorial parabéns,
segui ele desde o download do XNA Game Studio ate essa ultima parte do tuto, e compilei aqui perfeito e sem erros.
ja trabalho com C#,mas to começando com xna agora, esse tuto ajudou muito.

Obrigado...

RobertoVMelo disse...

opa Leo vc pode me dizer como faco para os inimigos aparecerem pela parte de cima da tela? e que nao seja sempre no mesmo lugar

valeu!

taka disse...

sera que tem como me ajudar? estou usando o xna 3.0 e ate agora nao tinha dado problema, mais agora deu um nessa linha "enemyplanes[i] = new GameObject(Content.Load("sprites\\enemyplane"));"
fala que os indices estava fora dos limites da matriz, eu ja olhei tudo e nao vi nenhum erro que eu tenha feito, voce poderia me ajudar? grato, alias seus tuto sao muit bons, obrigado mesmo

Anônimo disse...

Excelente tuto!Você poderia me passar o jogo por e-mail?Eu fiz tudo certinho,mas...os inimigos não aparecem na tela!!?!?!!
meu e-mail-> mateus_vv@hotmail.com

Unknown disse...
Este comentário foi removido pelo autor.
Unknown disse...

Muuuito bom!

Estou seguindo tudo aqui!! está saindo tudo perfeito! tutorial está de parabens!

Estou aprendendo muito!