Ponto V!

Home XNA XNA Entrando na terceira dimensão!
Alexandre Lobão
Entrando na terceira dimensão!Imprimir
Escrito por Alexandre Lobão

Amigos jogadores e desenvolvedores indie!

Uma grande notícia, para aqueles que estiveram em uma caverna desde 2008: uma equipe brasileira (“Mother Gaia Studio”, composta por alunos da Unesp de Bauru-SP) ganhou o primeiro lugar na categoria de criação de jogos com XNA na Imagine Cup, promovida pela Microsoft! Além da viagem paga à França, eles voltaram para casa com 25 mil dólares no bolso! Confira o jogo ganhador, “City Rain”, em http://www.ovologames.com/cityrain/ .

Então, o que estamos esperando? Vamos começar a ver tópicos mais avançados do XNA, para esquentar os motores para a próxima Imagine Cup!

Nos artigos anteriores, vimos como criar um jogo muito simples, com gráficos 2D. Vamos agora explorar um pouco as facilidades do XNA no mundo tridimensional! E para “animar”, inverteremos um pouco as coisas: primeiro faremos a parte prática, criando um programa que mostra um modelo 3D na tela; e depois veremos a teoria, explicando melhor os conceitos envolvidos!

Prontos?

clip_image002Primeiramente, iniciem o C# Express e criem um novo projeto (menu “File”, “New Project”) do tipo “Spacewar Windows Starter Kit 2.0”. Após o XNA criar o projeto, você poderá executar o projeto (pressionando F5) e relaxar um pouco jogando Spacewar. Este jogo é um dos “kits para iniciantes” do XNA, que vêm com código fonte completo, pronto para ser alterado conforme quisermos. Mas este mês nosso objetivo não é esse: criamos este projeto apenas para aproveitar um dos modelos de nave em nosso programa!

Crie agora um novo projeto, do tipo “Windows Game 2.0”. Neste projeto, clique na janela do “Solution Explorer” com o botão da direita, e use o menu “Add” para adicionar dois novos diretórios, de nome “Models” e “Textures”, e insira nestes diretórios os arquivos “p1_wedge.fbx” (em “Models”) e “wedge_p1_diff_v1.tga” (em “textures”). Você vai achar estes arquivos dentro do diretório “Content” do projeto Spacewar que você criou anteriormente.

Estes arquivos são o modelo 3D (.fbx) e a textura (.tga) de uma das naves do jogo Spacewar.

O que vamos fazer agora é criar um programa “mínimo” para mostrar um modelo 3D no XNA.

No início da classe Game1.cs, inclua uma variável do tipo Model:

Model modeloNave;

Agora, no método LoadContent, digite o código a seguir, que carrega o modelo e configura como ele será desenhado na tela.

//  Carrega o modelo
modeloNave = Content.Load(@"Models\p1_wedge");

//  calcula a proporção para ajuste da tela
float aspectRatio = (float)graphics.GraphicsDevice.Viewport.Width /  
    graphics.GraphicsDevice.Viewport.Height;

// Configura a visualização de cada uma das malhas do modelo
foreach (ModelMesh mesh in modeloNave.Meshes)
    foreach (BasicEffect effect in mesh.Effects)
    {
        effect.Projection = Matrix.CreatePerspectiveFieldOfView(
                      MathHelper.PiOver4, aspectRatio, 
                1.0f, 10000.0f);
        effect.View = Matrix.CreateLookAt(
                new Vector3(0.0f, 5000.0f, 5000.0f), 
                Vector3.Zero,Vector3.Up);
        effect.EnableDefaultLighting();
    }

Por fim, basta incluir as linhas a seguir no método Draw:

//  Desenha cada malha do modelo
foreach (ModelMesh mesh in modeloNave.Meshes)
   mesh.Draw();

Rodando o programa agora, poderemos ver a nave “flutuando” sobre um fundo azul, como na imagem a seguir.

clip_image002[7]

Esta é a mágica do XNA: Com menos de 20 linhas, fomos capazes de carregar um modelo 3D, mapear a textura sobre ele, configurar a câmera e a perspectiva, e desenhar o modelo na tela.

E enquanto espera pela teoria, você pode se divertir tentando descobrir o que significam as linhas que incluímos no programa pelo Help do XNA, ou consultar as aulas sobre modelos 3D no site do autor, .

Happy coding!


Comentários (2)
  • Diego
    avatar

    Olá Alexandre,

    Estava lendo o seu post e no meu XNA nao veio o Spacewar ;/ Você sabe onde posso conseguir? Obrigado.

  • Arthur
    avatar

    tem aki:
    http://create.msdn.com/en-US/education/catalog/sample/spacewar

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