programas de console programas de janela composição de um jogo main loop - update / draw...

13
Lógica de Programaçã o de Jogos

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

Lógica de Programação

de Jogos

Page 2: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

• Programas de console

• Programas de janela

• Composição de um jogo

• Main loop - Update / Draw

• Dissecando o Tetris

Page 3: 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.

Page 4: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

Programas de Janela

Evento Acionado

• Em geral, são baseados em eventos. Precisando que um evento seja acionado, para iniciar o processamento e retornar informação.

Page 5: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

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.”

Page 6: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

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;

Page 7: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

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...

Page 8: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

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;

Page 9: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

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;

Page 10: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

Esquema do Main Loop

Update

Fim do frame

Draw

Início do frame

Carrega conteúdo(imagens, modelos, sons...)

Page 11: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

Dissecando o Tetris

Initialize• Carregar as imagens do bloco;• Carregar as imagens do fundo de tela;• Inicializar variáveis (score, tempo, level, etc...);

Page 12: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

DrawUpdate• 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;

• 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;

Page 13: Programas de console Programas de janela Composição de um jogo Main loop - Update / Draw Dissecando o Tetris

Autor: Andre Petris EsteveEdição e Revisão: Zhenlei Ji