Este repositório contém todos os exercícios e desafios desenvolvidos durante a VIII Semana da Computação, no curso de Introdução ao Game Dev ministrado por Jáder Louis de Souza Gonçalves.
O curso oferece uma introdução prática ao desenvolvimento de jogos utilizando Python e a biblioteca Pygame, cobrindo desde conceitos básicos até a criação de um jogo funcional com mecânicas de colisão e pontuação.
INTRODUCAO A GAME DEV/
│
├── TESTES/ # Exercícios progressivos de aprendizado
│ ├── Teste_UM.py # Teste 01: Criação de janela básica
│ ├── Teste_DOIS.py # Teste 02: Detecção de eventos de teclado
│ ├── Teste_TRES.py # Teste 03: Desenho de formas geométricas
│ └── Teste_QUATRO.py # Teste 04: Movimentação e colisão com círculo
│
├── DESAFIOS/ # Desafios práticos incrementais
│ ├── DESAFIO_UM.py # Desafio 01: Controle de FPS
│ ├── DESAFIO_DOIS.py # Desafio 02: Sistema de cores interativo
│ ├── DESAFIO_TRES.py # Desafio 03: Movimentação de quadrado
│ ├── DESAFIO_QUATRO # Desafio 04: Limitação de bordas
│ ├── DESAFIO_CINCO.py # Desafio 05: Coleta de moeda simples
│ └── DESAFIO_FINAL.py # Desafio Final: Sistema completo de coleta
│
├── Curso VIII Semana Comp.pdf
├── Dinamicas VIII semana COMP.pdf
└── SLIDE_AULA_01.pdf
- Python 3.x
- Pygame
pip install pygameObjetivo: Criar uma janela básica do Pygame
Conceitos abordados:
- Inicialização do Pygame (
pygame.init()) - Criação de janela/tela (400x300 pixels)
- Loop principal do jogo (
while running) - Sistema de eventos (
pygame.event.get()) - Preenchimento de tela com cor (
screen.fill()) - Atualização de display (
pygame.display.flip()) - Encerramento correto do jogo
Como executar:
python TESTES/Teste_UM.pyObjetivo: Implementar detecção de eventos de teclado
Conceitos abordados:
- Controle de FPS (
pygame.time.Clock()) - Detecção de teclas pressionadas (
pygame.KEYDOWN) - Tratamento de eventos específicos (tecla R)
- Variáveis de estado (
cor_fundo)
Como executar:
python TESTES/Teste_DOIS.pyControles:
- Pressione R para testar detecção (mensagem no console)
Objetivo: Desenhar formas geométricas na tela
Conceitos abordados:
- Desenho de retângulos (
pygame.draw.rect()) - Sistema de coordenadas (x, y, largura, altura)
- Cores RGB
- Limpeza de tela a cada frame
Como executar:
python TESTES/Teste_TRES.pyObjetivo: Criar movimentação controlável e adicionar objetos de coleta
Conceitos abordados:
- Desenho de círculos (
pygame.draw.circle()) - Movimentação com setas do teclado
- Sistema de velocidade
- Limitação de movimento nas bordas da tela
- Múltiplos objetos na tela
Como executar:
python TESTES/Teste_QUATRO.pyControles:
- Setas direcionais: Mover quadrado vermelho
- O quadrado não pode sair da tela
Objetivo: Implementar controle de FPS
Conceitos:
- Objeto
Clockpara controle de frames - Limitação a 60 FPS
- Exibição de FPS no console
Como executar:
python DESAFIOS/DESAFIO_UM.pyObjetivo: Criar sistema interativo de mudança de cores
Conceitos:
- Múltiplos eventos de teclado
- Mudança dinâmica de cores
- Estruturas condicionais (if/elif)
Como executar:
python DESAFIOS/DESAFIO_DOIS.pyControles:
- R: Vermelho
- G: Verde
- B: Azul
Objetivo: Implementar movimentação suave de um quadrado
Conceitos:
pygame.key.get_pressed()para movimento contínuo- Variáveis de posição (x, y)
- Sistema de velocidade
- Redesenho constante da tela
Como executar:
python DESAFIOS/DESAFIO_TRES.pyControles:
- Setas direcionais: Mover quadrado
Objetivo: Adicionar limites de borda para evitar que o jogador saia da tela
Conceitos:
- Detecção de limites da tela
- Restrição de movimento por coordenadas
- Lógica condicional para bordas
Como executar:
python DESAFIOS/DESAFIO_QUATROControles:
- Setas direcionais: Mover (limitado às bordas)
Objetivo: Implementar sistema básico de colisão e coleta
Conceitos:
- Criação de
pygame.Rectpara detecção de colisão - Método
colliderect()para verificar sobreposição - Flags de estado (
moeda_coletada) - Renderização condicional de objetos
Como executar:
python DESAFIOS/DESAFIO_CINCO.pyMecânicas:
- Mova o quadrado vermelho até tocar a moeda amarela
- Mensagem de confirmação no console
- Moeda desaparece após coleta
Objetivo: Criar um jogo completo de coleta de moedas com geração aleatória
Conceitos:
- Módulo
randompara posições aleatórias - Função
gerar_posicao_moeda()personalizada - Sistema de pontuação
- Regeneração de objetos coletáveis
- Jogo infinito com mecânica contínua
Como executar:
python DESAFIOS/DESAFIO_FINAL.pyMecânicas:
- Controle o quadrado vermelho com as setas
- Colete moedas amarelas que aparecem aleatoriamente
- Cada moeda coletada aumenta a pontuação
- Nova moeda aparece automaticamente após coleta
- Pontuação exibida no console
Controles:
- Setas direcionais: Mover jogador
- ESC ou fechar janela: Sair do jogo
O curso segue uma progressão didática clara:
- Fundamentos → Criação de janela, loop de jogo, eventos
- Renderização → Cores, formas geométricas, desenhos
- Interatividade → Controle por teclado, detecção de input
- Movimento → Posicionamento dinâmico, velocidade, FPS
- Física básica → Colisão com bordas, limitação de área
- Game mechanics → Detecção de colisão entre objetos
- Gameplay → Sistema de pontuação, geração procedural
running = True
while running:
# 1. Processar eventos
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 2. Atualizar lógica do jogo
# (movimento, colisões, pontuação)
# 3. Desenhar na tela
screen.fill(cor_fundo)
pygame.draw.rect(screen, cor, (x, y, w, h))
# 4. Atualizar display
pygame.display.flip()- Origem (0,0) no canto superior esquerdo
- X aumenta para a direita
- Y aumenta para baixo
vermelho = (255, 0, 0)
verde = (0, 255, 0)
azul = (0, 0, 255)
amarelo = (255, 255, 0)
cinza_escuro = (50, 50, 50)rect1 = pygame.Rect(x1, y1, largura1, altura1)
rect2 = pygame.Rect(x2, y2, largura2, altura2)
if rect1.colliderect(rect2):
# Houve colisão!- Curso VIII Semana Comp.pdf - Material teórico completo
- Dinamicas VIII semana COMP.pdf - Atividades propostas
- SLIDE_AULA_01.pdf - Slides da primeira aula
Instrutor: Jáder Louis de Souza Gonçalves Evento: VIII Semana da Computação
Material educacional desenvolvido para fins didáticos.
Após completar este curso, você pode:
- Adicionar sistema de vidas e game over
- Implementar inimigos que se movem
- Criar diferentes níveis de dificuldade
- Adicionar sprites e imagens em vez de formas geométricas
- Implementar sons e música
- Criar um menu inicial e tela de pontuação
- Adicionar power-ups e obstáculos
- Salvar recordes em arquivo
Divirta-se programando!