Esdras Albino | Maria Fernanda Amorim | Matheus Borges | Tulio Araujo | Welton Felix |
Crie o virtual environment
python3 -m venv venv
Ative o virtual environment
source venv/bin/activate
Instale as dependências
pip install -r requirements.txt
Crie o virtual environment
python -m venv venv
Ative o virtual environment
venv\Scripts\activate.bat
Instale as dependências
pip install -r requirements.txt
Sempre que instalar uma nova dependência, atualize o arquivo requirements.txt
.
pip freeze > requirements.txt
Arquitetura de pastas do projeto
Classes das entidades do jogo.
Ex.: Player
, Asteroid
, Bullet
, Throttle
etc.
entities/
├── ammo_entity.py
├── asteroid_entity.py
├── bullet_entity.py
├── credits_screen_entity.py
├── crew_entity.py
├── entity.py
├── game_entity.py
├── initial_screen_entity.py
├── inventory_entity.py
├── item_entity.py
├── life_entity.py
├── player_entity.py
├── racetrack_entity.py
├── throttle_entity.py
Arquivos de utilidades do jogo. Funções que podem ser usadas em qualquer lugar do projeto.
util/
├── change_window_size_util.py
├── colors.py
├── image_render.py
├── update_coords..py
Arquivos de assets do jogo. Imagens, sons, etc.
assets/
├── asteroid.png
├── bullet.png
├── player.png
├── background.png
├── commet.png
├── propellant.png
├── theme.mp3
pygame==2.5.1
Time | Tarefas |
---|---|
Esdras Albino | Desenvolveu estados de controle do jogo e lógica envolvendo itens e inventário |
Maria Fernanda Amorim | Desenvolveu todas as responsividades do jogo |
Matheus Borges | Desenvolveu telas iniciais, créditos, game over e mecânica de tiros com o mouse |
Tulio Oliveira | Desenvolveu colisões entre todas os objetos do projeto |
Welton Felix | Principal code reviewer, desenvolveu a classe base de entidades e movimentação do player |
Aplicamos desde os fundamentos como listas e estruturas de repetição, até os tópicos avançados, incluindo os princípios iniciais da Programação Orientada a Objetos (POO).
A utiilização de funções, loops e condicionais foram cruciais para o desenvolvimento do jogo, visto que, contribuem imensamente para a escalabilidade e organização do código.
Além disso Orientação a objetos nos permitiu a estruturação e construção do código em torno da organização em classes e suas funções associadas, a capacidade de gerenciar cada objeto de forma independente simplificou o processo de escrita do código e significativamente aprimorou a sua legibilidade.
Enfrentamos alguns desafios durante o projeto, especialmente relacionados ao planejamento e à priorização de tarefas dentro da equipe. Sendo o principal problema a falta de priorização nas tarefas fundamentais, o que nos levou a gastar um tempo considerável reescrevendo parte da base do código, juntamente com as implementações que já tínhamos concluído. Como resultado, enfrentamos diversos problemas de conflito e integração entre diferentes branches.
Todos do time com certeza levaram como maior lição que um bom planejamento com priorizações certas são tão cruciais quanto bons conhecimentos técnicos.
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.
Projeto desenvolvido para a disciplina Introdução à Programação (IF669) do curso de Ciência da Computação do CIn - UFPE .