Skip to content

Latest commit

History

69 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SPACE INVADERS 🛸

LanguageModules

ALIENS ESTÃO INVADINDO A TERRA!

Calma, essa é apenas a temática que do jogo Space Invaders!
Sendo originalmente lançado em 1978 pela TAITO CORPORATION e desenhado por Tomohiro Nishikado, e depois licenciado pela Midway. Este joguinho foi um dos primeiros cuja temática era de tiro e que possuia gráficos bidimensionais. O sucesso se estende até os dias atuais!

O objetivo do jogo é destruir os aliens com a sua nave e dessa forma impedir que a invasão se concretize. Porém, não se pode dormir na direção, já que a qualquer momento os aliens podem te atingir e conseguir o que tanto querem: conquistar a Terra 🌎!

Tela de Jogo

Tópicos

Eventos Essenciais em um jogo

Para se construir um jogo é necessário ter conhecimento de quais eventos são importantes para o mesmo. Portanto, abaixo temos uma tabela com alguns desses eventos:

EventosExplicação
Surfacesão as superfícies em 2D ou 3D onde se desenha o jogo.
Displaysão os eventos que manipulam a tela, abrindo a possibilidade de atualizar ou configurar a tela, entre outras possibilidades.
drawsão os desenhos na superfície.
imagesão as imagens. Este é o que possibilita a leitura ou gravação de imagem(ns).
eventsão os eventos do jogo.
fontutilizado para trabalhar com fontes.
transformpermite rotacionar, espelhar, modificar ou cortar as imagens do jogo.
mixerfacilita o trabalho com os sons no jogo.
Clocktrabalha com o tempo dos quadros do jogo.
spriteé uma imagem que faz parte do jogo, isto é, são os componentes que aparecem no jogo. Podendo se dividir em Sprite e Group (a classe Group serve para agrupar várias sprites).

Pygame

PyGame é um módulo1 usado na programação de jogos 2D, escrito utilizando C e Python. Ele pode ser executado em todas as principais plataformas e fornece ferramentas simples para gerenciar ambientes gráficos complexos, com movimentos e sons.
Alguns módulos presentes em pygame são:

MóduloFuncionalidade
cursorscarrega imagens de cursores, como mouse.
displaycontrola a exibição da janela ou tela.
drawdesenha formas simples sobre uma Surface.
eventcontrola eventos e fila de eventos.
fontcria e renderiza fontes.
imagesalva e carrega imagens.
joystickcontrola dispositivos joystick.
keycontrola o teclado.
localscontém constantes de Pygame.
mixercarrega e executa sons.
mousecontrola o mouse.
movieexecuta filmes no formato mpeg.
timecontrola a temporização.
transformpermite redimensionar e mudar a orientação de imagens.
cdromgerencia o dispositivo de CD-ROM e a execução do áudio.
sndarraymanipula sons com NumPy.
surfarraymanipula imagens com NumPy.

FONTE: LINK

Instalando o Pygame

Inicialmente é necessário ter o Python instalado e o pip. Caso não tenha um dos dois instalados siga o passo a passo visto aqui para Linux ou aqui para Windowse não se esqueça de adicionar Python na variável de ambiente!.

  1. Para iniciar a instalação do Pygame, é recomendável estar com o pip atualizado, para isso faça (esse passo pode ser pulado se você acabou de instalá-lo):
$ pip install --user --upgrade pip 
  1. Instalando Pygame:
$ pip install --user pygame

Executando o jogo

Qualquer um pode baixar o código do jogo e executar clicando no botão verde Clone or download e pode baixar o código clicando aqui ou digitando no terminal o comando:

$ git clone https://github.com/HigorSnt/SpaceInvaders.git

Se optar pela primeira opção lembre-se de extrair!

Em seguida, entre na pasta do jogo utilizando o terminal:

$ cd SpaceInvaders

Por fim, faça o seguinte comando:

$ python spaceinvaders.py

Em seguida deverá abrir a janela do jogo 😁.

Detalhes da Construção do Jogo

Para a construção deste projeto foi necessário criar diversas classes com o objetivo de facilitar o tratamento de colisões, representação de entidades importantes para a jogabilidade, entre outros motivos. Algumas das classes criadas foram:

EdgeEstrutura criada para facilitar a análise de colisões com as bordas.
BlockResponsável por criar barreiras que protegem a nave.
ShipClasse que representa a nave do jogador.
InvaderClasse que representa os invasores.
MysteryÉ a representação da nave Mystery presente no jogo tradicional.
BulletClasse que representa as balas de todos os objetos que realizam disparos.
SpaceInvadersClasse principal responsável por toda a lógica do jogo.

Comandos

Para realizar comandos no jogo é necessário apenas o uso teclado e a sua listagem está abaixo:

Iniciar o jogoENTER ou SPACE
Fechar ou EncerrarESC ou clicar no ❌ da janela.
Movimentar a naveSetas direcionais (⬅ ou ➡)
Realizar disparoSeta direcional (⬆) ou SPACE
Reiniciar o jogo (na tela de Game Over)ENTER

Links Úteis

Autores

Código desenvolvido para auxiliar aos alunos da disciplina de Laboratório de Programação I
Autores:

  1. Módulos são arquivos que contêm definições e instruções de Python, ou seja, qualquer arquivo .py é um módulo!

About

Recriação do jogo Space Invaders utilizando Pygame

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages