|
|
|
|
(Publicado na revista XBox 360 ano 2 número 19)
Na parte 1 deste artigo, vimos como desenhar as sprites (imagens) do bastão e da bola, ainda fixas na tela. Na parte dois, vimos como controlar os bastões com o gamepad do Xbox 360 e como fazer a bola se movimentar, mas ainda sem "quicar" em nada. Agora, vamos ver como escrever o código para fazer a bola quicar nas bordas de cima e de baixo da janela, e como fazer para que os bastões a rebatam!
Pronto? Então, vamos lá!
1.Rebater a bola na parte de cima da tela é simples: basta inverter a velocidade se a coordenada Y da bola (armazenada na variável posBola) for menor do que zero, já que a coordenada Y começa do zero, na parte de cima da tela. Assim, inclua no método Update a da classe Game1 as seguintes linhas:
2. Para rebater na parte de baixo da tela, o teste é semelhante, sendo que devemos lembrar de dois detalhes: A tela possui (como padrão, podendo ser mudado via código) 600 pixels de altura; e para rebater desde a parte “de baixo” da bola , precisamos somar o tamanho da bola - 16 pixels – pois sua posBola é a posição do canto superior direito da bola:
3. Para calcular se a bola está batendo no bastão, precisamos testar se alguma das coordenadas X,Y da bola está entre as coordenadas X,Y do bastão. Neste caso, não há como fugir de um pouco de matemática. Lembrando que a bola tem 16 pixel de altura e de largura; que o bastão tem 16 pixels de largura e 96 de altura; precisamos testar se as coordenadas da bola estão entre as coordenadas do bastão. Para o bastão da esquerda, que é fixo na posição 20 da tela (conforme o código que escrevemos no primeiro artigo desta série) este teste seria:
4. Para fazer o teste com o bastão da direita, basta repetir o mesmo código, trocando o número 20 por 764, a posição do bastão da direita. O código final do método Update é apresentado a seguir:
Rodando nosso programa agora, veremos que é possível controlar os bastões com os dois thumbsticks do gamepad, e rebater a bola (que quica nas bordas de cima e de baixo da janela). No entanto, se o bastão "erra", a bola sai pela lateral e some.
Na revista XBox 360 número 20, de julho, veremos o código para contar pontos e mostrá-los na tela, e para reiniciar a bola quando ela sai pelas laterais, concluindo este nosso pequeno passeio pelo maravilhoso mundo do desenvolvimento indie (independente) de jogos!
Baixe o código completo desta coluna aqui. E para consultar uma versão um pouco mais "profissional", onde é criada uma classe para gerenciar as sprites, veja este outro código.
E para saber mais sobre o XNA, consulte os slides na página de palestras!
