Lógica de Programação de Jogos
description
Transcript of Lógica de Programação de Jogos
![Page 1: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/1.jpg)
Lógica de Programação
de Jogos
![Page 2: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/2.jpg)
• Programas de console
• Programas de janela
• Composição de um jogo
• Main loop - Update / Draw
• Dissecando o Tetris
![Page 3: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/3.jpg)
Programas de Console• Em geral, precisam de uma entrada para iniciar o processo e retornar uma saída.
![Page 4: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/4.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/5.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/6.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/7.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/8.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/9.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/10.jpg)
Esquema do Main Loop
Update
Fim do frame
Draw
Início do frame
Carrega conteúdo(imagens, modelos, sons...)
![Page 11: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/11.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/12.jpg)
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: Lógica de Programação de Jogos](https://reader035.fdocumentos.tips/reader035/viewer/2022081505/5681634c550346895dd3e175/html5/thumbnails/13.jpg)
Autor: Andre Petris EsteveEdição e Revisão: Zhenlei Ji