Curso Básico de Programação de Jogos com XNA Alexandre Tolstenko Nogueira alexandre@tolstenko.net...

Post on 22-Apr-2015

105 views 2 download

Transcript of Curso Básico de Programação de Jogos com XNA Alexandre Tolstenko Nogueira alexandre@tolstenko.net...

Curso Básico de Programação de Jogos com XNA

Alexandre Tolstenko Nogueiraalexandre@tolstenko.net

http://tolstenko.nethttp://forum.gamux.com.br

Sinopse

1. Apresentação;2. Estrutura de Dados;3. Input;4. Animação 2D;5. Gerenciamento de Telas;6. Audio;7. Storage;8. 3D Básico;9. Modelos;10. Camera;11. Vertex Shaders.

1. Apresentação

1. Apresentação

• Teoria:– IDE, SDK, Framework e XNA;– Estrutura e organização básica de um jogo em XNA;– Carregar e desenhar imagens na tela;– Escrever textos na tela;– Colisões.

• Prática:– Pong.

• Desafio:– Pong com colisão vetorial, poligonal ou outra tecnica mais avançada.

2. Estrutura de Dados

2. Estrutura de Dados

• Teoria:– Aprofundamendo da estrutura de jogo do XNA– Classe vs Struct– Listas– Árvores – Representações de mundo:

• Quadtree, Octree, BSP;– Campeonatos e “Seleção” Gamux

• Prática:– Snake

• Desafio:• Reprensentar uma imagem em Quadtree.

3. Input

3. Input

• Teoria:– Keyboard– Mouse– Joypad (Xbox)– Wiimote + Nuntchunk (Wii)– GameComponent

• Prática:– Classes de tratamento de cada Input

• Desafio:– Classes GenericInput e InputComponent

4. Animação 2D

4. Animação 2D

• Teoria:– Placa gráfica vs Processador;– Representando uma imagem na tela;– Texture2D;– Sprite.

• Prática:– Programar uma animação simples.

• Desafio:– Programar uma classe de animação complexa.

5. Gerenciamento de Telas

5. Gerenciamento de Telas• Teoria:

– Algoritmos de gerenciamento de telas;– Estrutura de uma tela básica;– Composição de Telas;– Events e Delegates;– DrawableGameComponent.

• Prática:– Modificar algum game para utilizar telas de :

• Opening;• Menu;• Game.

• Desafio:– Programar um menu com Eventos– Troca rápida de telas

6. Audio

6. Audio

• Teoria:– Xact– Song– SoundEffect

• Prática:– Guitar Hero

• Desafio:– Ler de um XML as informações da música;– Permitir que o usuário crie sua música.

7. Storage

7. Storage

• Teoria:– Storage– ContentManager

• Prática:– Programar um ContentManager

• Desafio:– Programar um ContentManager de algum padrão 3D

8. 3D Básico

8. 3D Básico

• Teoria:– Coordenadas 3D– Projeções: Ortogonal vs Perspectiva

– Vertices– Primitivas– Matrizes– Effects

• Prática:– Desenhar um cubo 3D

• Desafio:– Fazer o cubo girar ao redor de sí

9. Modelos

9. Modelos

• Teoria:– Models;– Meshes;– Bones;– Colisão 3D.

• Prática:– Carregar modelos

• Desafio:– Movimentar e animar um modelo.– Colisão com cenário

10. Camera

10. Camera

• Teoria:– Manipulando a camera– Chasing Camera

• Prática:– Fazer uma camera seguir algum trajeto

• Desafio:– Fazer a camera seguir um objeto animado que anda pelo

cenário.

11. Shader

11. Shaders

• Teoria:– Iluminação: ambiente, Difusa , Especular;– Estrutura de um shader– Linguagem HLSL– Carregando e aplicando Shaders

• Prática:– Escrever um Shader simples– Aplicar shader

• Desafio:– Manipular a iluminação a medida que o objeto se move

Agradecimento

spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!", positionVect, Color.Black);