Ponto V!

Home XNA XNA Criando seus próprios jogos para XBox 360 – Parte II
Alexandre Lobão
Criando seus próprios jogos para XBox 360 – Parte IIImprimir
Escrito por Alexandre Lobão

Antes de continuarmos com nosso jogo, vale a pena lembrar um detalhe curioso, lembrado por um de nossos leitores: O “Tennis for Two” foi o primeiro vídeo-game, criado em 1958 por Willy Higinbotham, mas na verdade nosso jogo se parece mais com o “Pong”, um dos primeiros jogos de fliperama, criado em 1972 por Al Alcorn. Apesar disso, vamos manter o nome “Tennis for One”, certo?

Na semana passada, vimos como desenhar as sprites do bastão e da bola, ainda fixas na tela. Vamos ver agora como controlar os bastões com o gamepad do Xbox 360 e como fazer a bola se movimentar!

Para movimentar os bastões, basta alterar a posição em que eles aparecem antes de desenhá-los. Para isso, primeiramente precisamos criar duas variáveis que vão guardar a posição dos bastões e alterar o código de desenho para usar estas variáveis. Para isso, basta incluir no início da classe Game1 as linhas:

float posBastaoEsquerda = 320;
float posBastaoDireita = 320;

E alterar o desenho dos bastões, no método Draw, para usar estas variáveis:

spriteBatch.Draw(texBastaoEsquerda, new Vector2(20, posBastaoEsquerda), Color.White);
spriteBatch.Draw(texBastaoDireita, new Vector2(764, posBastaoDireita), Color.White);

Estas linhas, agora, desenham a textura de cada bastão (carregada na parte 1 deste artigo) na respectiva posição X,Y da tela, sendo o X (distância horizontal a partir da esquerda da tela) fixo para cada bastão, e o Y (distância do topo da tela) controlado pelas variáveis que criamos.

Para alterar a posição dos bastões, basta incluir três linhas no método Update:

GamePadState meuGamePad= GamePad.GetState(PlayerIndex.One);

posBastaoEsquerda += meuGamePad.ThumbSticks.Left.Y * -10;
posBastaoDireita += meuGamePad.ThumbSticks.Right.Y * -10;

Na primeira linha, “lemos” o estado do gamepad (que, lembrando, funciona também conectado ao PC); e a seguir atualizamos as variáveis que indicam a posição dos bastões, conforme o movimento do thumbstick da esquerda ou da direita. Como o valor do thumbstick varia de -1 (totalmente para baixo) até +1 (totalmente para cima), multiplicamos por -10 para que os bastões se movimentem até um máximo de 10 pixels por vez, e conforme o esperado (aumentando o Y para descer na tela, e vice-versa).

Para movimentar a bola, também precisaremos criar uma variável para armazenar a posição X e Y da bola. Além disso, precisaremos criar uma variável para guardar a velocidade da bola, um valor de deslocamento nos eixos X e Y. O XNA oferece um tipo de dados pronto para isso: Vector2. Assim, devemos criar as variáveis no início da classe:

Vector2 posBola = new Vector2(400, 300);
Vector2 velBola = new Vector2(3, 3);

Em seguida, alterar o código de desenho para usar a variável da posição da bola:

spriteBatch.Draw(texBola, posBola, Color.White);

E, por fim, incluir apenas mais uma linha no método Update para alterar a posição da bola conforme a sua velocidade atual:

posBola += velBola;

Rodando nosso programa agora, veremos que é possível controlar os bastões com os dois thumbsticks do gamepad, e veremos a bola se movimentar em diagonal na tela até sair – e isso escrevendo apenas 20 linhas de código!

Na semana passada, quando começamos a criação do jogo “Tennis for one”, mencionamos que tanto o XNA quanto o Visual C# Express, usados para criar o jogo, são gratuitos. Para enviarmos jogos do PC para o Xbox 360, no entanto, é necessário ser sócio do Creator’s Club (http://creators.XNA.com) e para ser sócio, infelizmente, precisamos pagar.

A boa notícia é que no dia 28 de maio a Microsoft mais uma vez nos surpreendeu, anunciando o lançamento da iniciativa “DreamSpark” (https://downloads.channel8.msdn.com/) no Brasil! Na prática, isso quer dizer que se você é estudante, tem direito de se cadastrar e receber um ano de assinatura gratuita do Creator’s Club, criando seus jogos e jogando-os em seu Xbox 360 sem pagar nada!

Na próxima semana, veremos o código para rebater a bola nas paredes e bastões e a escrita da pontuação na tela, concluindo este nosso pequeno passeio pelo maravilhoso mundo do desenvolvimento indie (independente) de jogos. O código do jogo (na versão do artigo, bem simples, e em uma versão ligeiramente mais profissional, com a criação de uma classe para gerenciar as sprites) se encontra neste link.

Até lá, fique à vontade para explorar o XNA e começar a criar seus próprios programas, esperamos seus comentários e sugestões para próximas colunas!


Comentários (4)
  • Lohandus
    avatar

    Ótimo artigo Alexandre, o XNA facilita mesmo o desenvolvimento de games...

    Sobre o DreamSpark, você sabe se será possível enviar jogos do PC para o Xbox 360 mesmo sem Live?

  • Alexandre Lobão  - re: DreamsPark, Creators Club, Live
    avatar
    Lohandus Escreveu:

    Sobre o DreamSpark, você sabe se será possível enviar jogos do PC para o Xbox 360 mesmo sem Live?


    Pois é... A Live! ainda não tem data para chegar ao Brasil, então para mandar jogos para o XBox 360 precisamos ter uma conta Live E uma conta Gold do Creators Club com um endereço americano... O DreamSpark não muda isso, no fim precisamos usar este artifício. A Microsoft alega que o XBox 360 precisa se firmar no Brasil (o que significa: vender mais jogos, ter menos pirataria) para poder investir em trazer a Live!, então, façam sua parte - nada de "chipar" o console para rodar jogos piratas! :)

  • Arthur  - DUVIDA
    avatar

    tenho uma pequena dificuldade.... os pontos n aparecem, e n sei como controlar os bastoes aki no meu PC...

    vlw ae!!!!

  • Alexandre Lobão  - RES: Duvida
    avatar

    Oi Arthur!
    Só com estas informações é difícil fazer algum diagnóstico.
    Sugiro que você dê uma olhada na parte de "Jogos" do meu site (www.AlexandreLobao.com) que tem diversos exemplos para download, a partir destes exemplos, vendo a coisa funcionando, você poderá facilmente descobrir o que está errado com seu programa.
    []s

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter