LaserPy - Jogo feito em Python (Open Source)


LaserPy é um jogo estilo puzzle desenvolvido inteiramente em Python, utilizando a biblioteca Pygame. O projeto nasceu da minha curiosidade pessoal de aplicar meus conhecimentos em programação e desenvolvimento em Python para criar uma experiência interativa e divertida.

O objetivo do jogo é guiar feixes de laser até seus respectivos alvos, manipulando espelhos no tabuleiro. O jogador deve pensar estrategicamente para atingir todos os alvos no menor número de movimentos possível.

Mecânica do jogo
Laser e alvos por cor: cada emissor de laser possui uma cor (vermelho, azul ou verde), e só ativa o alvo da mesma cor.

Espelhos com três tipos de comportamento:
  • Verde: podem ser movidos e girados (duplo clique para girar, clique e arraste para mover).
  • Vermelho: podem ser movidos, mas não girados.
  • Cinza: são fixos, nem movem nem giram.
Reflexão: os lasers rebatem nos espelhos com base na direção e rotação. O comportamento segue um mapeamento de direção refletida.

Paredes: bloqueiam o feixe.

Sistema de avaliação
O número de movimentos é comparado com a meta de cada nível.
A pontuação por estrelas é dada conforme a eficiência:
  • 3 estrelas: movimentos ideais
  • 2 estrelas: até 2 movimentos a mais
  • 1 estrela: acima disso
Cronômetro regressivo: o jogador tem 30 segundos por fase.

Animação de acerto: quando o laser atinge seu alvo, uma animação de expansão e partículas é exibida antes da conclusão do nível.

Sistema de níveis: cada nível possui layout, obstáculos, espelhos e lasers definidos em uma estrutura configurável.

Construindo novos níveis

A estrutura de níveis é baseada em um dicionário Python. Cada nível contém:
{ "lasers": [...],
"espelhos": [...],
"paredes": [...],
"movimentos_esperados": X }

Exemplo de espelho:
{"linha": 4, "coluna": 3, "rotacao": 0, "cor": "verde"}

Exemplo de laser:
{"emissor": (1, 2), "destino": (8, 9), "direcao": "direita", "cor": "vermelho"}

A rotação define a orientação do espelho e usa um dicionário chamado reflexoes que controla como o feixe muda de direção ao colidir.

Recursos e detalhes técnicos
  • Interface gráfica com animações suaves
  • Sistema de partículas para feedback visual
  • Interface com HUD e popup de conclusão
  • Tela inicial com botões (Iniciar, Sair)
  • Arquitetura modular para carregamento de fases
  • Código comentado e bem estruturado
  • Estrutura de dados baseada em dicionários e classes
  • Lógica de eventos com pygame.event.get()
  • Animação com pygame.Surface e pygame.draw
  • Avaliação de performance do jogador em tempo real
Capturas de tela e download





O código fonte do projeto está disponível para download abaixo.