320 likes | 431 Views
Gerenciamento de Telas. Alexandre Tolstenko Nogueira alexandre@tolstenko.net http://forum.gamux.com.br http://tolstenko.net Revisão : Erick “ Puyol ” Luis Moraes de Sousa. Papel e caneta na mão !. Revisão. Revisão. Estados JustPressed e JustReleased ; Deadzone ; GenericInput .
E N D
Gerenciamento de Telas Alexandre Tolstenko Nogueira alexandre@tolstenko.net http://forum.gamux.com.br http://tolstenko.net Revisão: Erick “Puyol” Luis Moraes de Sousa
Papel e canetanamão! Revisão
Revisão • Estados JustPressed e JustReleased; • Deadzone; • GenericInput. Revisão!
Motivos • Grande empecilho quando se programa games; • Facilitar nossa vida quando queremos mudar de visões de jogo.
Objetivos • Conhecer e entender mais a fundo componentes de Jogo; • Conseguir iniciar um sistema de menus para jogos; • Transitar entre telas de jogo.
Tratamento de telas de um jogo Gerência de Telas
Drawable Game Component • Componente de jogo que permite ser desenhado; • Atualiza-se na mesma freqüência que o game; • Estrutura semelhante a classe Microsoft.XNA.Framework.Game.
Screen Manager • Controlador da visualização do game; • Alterna telas; • Controla estados de Telas; • Empilha estados anteriores de telas: • Exemplo: Pause e InGame.
Layer Manager • Gerencia camadas; • Organiza as informações do HUD; • Implementa a GUI em cima do jogo; • Camada mais baixa é o jogo em si e a mais alta é a GUI e/ou HUD; • Em um game de plataforma, existem várias camadas de imagens para dar a impressão de profundidade.
MVC para games • Model: • Classes abstratas do que seria o modelo de classes; • View: • Classes de telas e camadas; • Controler: • Engine que controla e define o comportamento do jogo.
Prática • Prática: • Re-implementaralgum game jáfeitotentandousar a idéia de MVC voltadapara games; • Adicionar as telas de Abertura, Menu, Créditos, Opções, InGameparaalgumjogoseu; • Desafio: • Transição de Pause-InGame.
Etapas • Abertura; • Migrartela de aberturapara Menu porcontador de tempo; • Estados do Menu; • UsarJustPressedparamudarparatelaInGame; • Implementar Pause e permitirqueretorne à tela de jogo anterior; • VoltarparaInGame.
Agradecimento spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!", positionVect, Color.Black);