Curso Básico de Programação de Jogos com XNA Alexandre Tolstenko Nogueira [email protected] http://tolstenko.net http://forum.gamux.com.br Sinopse 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Apresentação; Estrutura de Dados; Input; Animação 2D; Gerenciamento de Telas; Audio; Storage; 3D Básico; Modelos; Camera; 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);