como montar um grid 3D com XNA

Uma das coisas que tenho estudando bastante ultimamente, além da Unity e de C++, é o XNA. Por ser algo gratuito e bem difundido pela Microsoft, é bem fácil de encontrar ajuda na internet sobre qualquer coisa que você quer fazer ou algum erro estranho, principalmente no fórum oficial do XNA Creators Club, além dos exemplos e tutoriais que podem ser encontrados neste site. Mesmo assim, sempre existe aquele detalhe que você não consegue encontrar ou que simplesmente não funciona do jeito que deveria.

Isto aconteceu comigo quando estava tentando montar um Grid em 3D com XNA. Eu queria criar um método para gerar um Grid dinâmico, com o número de linhas de colunas que seriam recebidos por parâmetros. Encontrei diversas soluções, porém nenhuma funcionou do jeito que eu queria, ou não consegui adaptar para o que eu precisava. Assim, tive que estudar como fazer desenho de pontos e retas em 3D e criar meu próprio método para isto.

Primeiro eu tinha pensando em desenhar uma célula, e depois utilizar um conjunto de células em uma classe Grid. Esta idéia não deu muito certo, pois ficaria bem complicado gerenciar o desenho de cada célula. A minha solução final ficou mais simples: criei uma classe Grid onde eu traço retas em pontos que formam o meu Grid, de acordo com o número de linhas e colunas. Abaixo trecho do código responsável por montar o Grid:

Código do Grid no XNA

Código do Grid no XNA

Após montar o Grid em uma variável VertexPositionColor, basta utilizar o método DrawUserPrimitives() desenhando uma LineList. Para visualizar o Grid é necessário outras coisas além disso, como definir uma matrix de View e uma de Projeção, que são coisas bem mais básicas do que a lógica de desenhar um Grid. Além do XNA Creators Club, existe o XNA MSDN Library da Microsoft, que também é muito útil para aprender.

Desenho do Grid em 3D

Desenho do Grid em 3D

Desenho do Grid em 3D

Desenho do Grid em 3D

Espero que isto seja útil para quem está aprendendo XNA. Qualquer dúvida é só perguntar nos comentários! 

6 Responses to “como montar um grid 3D com XNA”

  1. WILSON Filho disse:

    me passa uns codigos para montar um game no bloco de notas ou me passa o programa

  2. cicanci disse:

    Olá Wilson! Que tipo de jogo vc quer fazer? Para qual plataforma (celular, PC, Xbox…)? Dependendo do que vc quiser eu posso te indicar sites para te ensinar como fazer o jogo que vc quer.

  3. Sebastian disse:

    Ola…Obrigado pela ajuda! eu vou ver se consigo fazer a animação!….Obrigado xD

  4. cicanci disse:

    De nada! Qualquer coisa é só perguntar!

  5. Fabio Garcia Rojas disse:

    Gostaria de saber sua opinião sobre qual linguagem é melhor para resolver meu caso, tenho de criar um jogo em 3d pré renderizado, eu uso a Unity ou com o xna é mais facil???

  6. cicanci disse:

    Olá Fabio!

    Depende muito do que vc tem mais facilidade em fazer. Se vc conhece programação de jogos (arquitetura, gameplay, etc), talvez com o XNA seja menos complicado, pois ele é um framework que te auxilia a criar um jogo. Já a Unity não exige muita programação, por que é uma Game Engine, porém ela necessita de uma dedicação maior para aprender a utilizá-la. A Unity não é muito complicada, mas vc precisa estudá-la antes de fazer algo. Ainda sim, depende muito do tipo de game que vc quer fazer.

    Para poder dar minha opinião real, preciso saber que tipo de jogo vc quer fazer e para qual plataforma. Se vc quiser mais informações sobre a Unity, veja o meu post sobre esta game engine aqui no blog.

    Até mais!

Leave a Reply

Panorama theme by Themocracy