130 likes | 263 Vues
Lógica de Programação de Jogos. Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris . Programas de C onsole. Em geral, precisam de uma entrada para iniciar o processo e retornar uma saída. Programas de Janela.
E N D
Programas de console • Programas de janela • Composição de um jogo • Main loop - Update / Draw • Dissecando o Tetris
Programas de Console • Em geral, precisam de uma entrada para iniciar o processo e retornar uma saída.
Programas de Janela • Em geral, são baseados em eventos. Precisando que um evento seja acionado, para iniciar o processamento e retornar informação. Evento Acionado
Composição de Jogo • Um jogo tem tanto a necessidade de entrada de comandos, como os programas de console; Exemplo: Movimentação de personagens. • Quanto a de realização de eventos, como os de janela; Exemplo: “Quando a bola atingir a barra, faça algo.”
Main Loop • Os jogos são baseados em janelas, que precisam ser atualizadas e redesenhadas em ciclos rápidos, como em um desenho animado; • Esse ciclo contínuo de atualizar e redesenhar a tela é chamado de Main loop ou Game loop; • Basicamente, podemos dividí-lo em duas partes: Update e Draw;
Update • Atualização de todo e qualquer objeto no jogo(posição, velocidade, situação, etc...); • Entrada de comandos(teclado / gamepad); • Controle de eventos; • Animações e música; • Condições de vitória, etc...
Draw • Faz o controle do que deve ou não ser desenhado na tela; • Atualiza o buffer de vídeo com o que deve ser desenhado na tela; • Libera o buffer de vídeo para a tela;
Frame • É o nome dado a cada ciclo completo do Main loop, ou seja, inicia-se no Update, e termina logo antes do próximo Update; • O frame por segundo(fps) é a velocidade de atualização dos gráficos de um jogo; • A maioria dos jogos procura manter um padrão de 60 fps;
Esquema do Main Loop Carrega conteúdo(imagens, modelos, sons...) Update Início do frame Draw Fim do frame
Dissecando o Tetris Initialize • Carregar as imagens do bloco; • Carregar as imagens do fundo de tela; • Inicializar variáveis (score, tempo, level, etc...);
Draw Update • Decidir o que • deve ou não ser desenhado; • Preparar o buffer • de vídeo com o que deve ser desenhado; • Liberar o buffer de vídeo para a tela do monitor; • Atualizar posição • das peças, variáveis • (tempo, score, etc...); • Verificar e tratar colisão das peças; • Verificar e tratar condição de vitória; • Demais atualizações • ou verificações;
Autor: Andre Petris Esteve Edição e Revisão: Zhenlei Ji