Starfire – Shooter Espacial 2D (Java Swing)
Starfire é um jogo de tiro espacial 2D desenvolvido em Java, utilizando Java Swing para renderização gráfica.
O projeto foi desenvolvido como Trabalho Final da disciplina de Programação Orientada a Objetos (POO).
Trailer de apresentação do Jogo - StarFire
https://github.com/user-attachments/assets/f2c0cf8c-b210-4447-b3ce-427b682ccd79
Versão Atual - (Versão Final)
Esta versão representa um jogo completo, com início, meio e fim bem definidos.
O jogador progride por ondas finitas de inimigos até enfrentar o chefe final, podendo vencer ou perder a partida de forma clara.
O jogo possui:
- Progressão estruturada por ondas.
- Sistema de pontuação.
- Itens temporários (power-ups).
- Batalha final contra um Boss com múltiplas fases.
- Telas de Vitória e Game Over.
🛠 Tecnologias Utilizadas
- Java
- Java Swing (
JPanel, Graphics2D)
- AWT (Eventos de Teclado e Mouse)
Como Jogar
O jogador controla uma nave espacial e deve sobreviver a ondas progressivamente mais difíceis de inimigos alienígenas até alcançar o chefe final.
Controles
- W, A, S, D: Movimentar a nave.
- ESPAÇO: Atirar.
- C: Ativar Escudo (se disponível).
- R: Ativar Tiro Triplo (se disponível).
- P: Pausar o jogo.
- Mouse: Navegar pelos menus.
Estrutura do Jogo
O jogo é dividido em 10 Hordas e cada horda contém 3 fases:
- Horda 1: Inimigos básicos para adaptação do jogador.
- Hordas 2–9: Combinações variadas de inimigos, com aumento gradual da dificuldade.
- Horda 10: Batalha final contra o Boss.
A progressão é finita, e a vitória só é alcançada após derrotar o chefe final.
Inimigos
O jogo conta com diferentes tipos de inimigos, cada um com comportamentos próprios:
Kamikaze V1
- Move-se atravessando a tela de um lado ao outro.
- Detecta a posição do jogador e tenta alcançá-lo de forma direta.
- Representa a ameaça mais simples do jogo.
Kamikaze V2
- Possui comportamento semelhante a um míssil teleguiado.
- Ajusta constantemente sua trajetória para seguir o jogador.
- Exige maior movimentação e atenção do player.
Sentinel
- Inimigo estacionário que acompanha o player no eixo y.
- Ataca o jogador disparando projéteis de energia.
- Atua como inimigo de controle de área, limitando o espaço de movimentação.
Boss Final – Apis Singularis
O jogo culmina na batalha contra o Boss Apis Singularis, que possui múltiplas fases:
- Fase 1: Movimentação e ataques básicos.
- Fase 2: Invocação de inimigos auxiliares durante o combate.
- Fase 3: Padrão intenso de disparos no estilo Bullet Hell.
- Mecânica de Atordoamento: O boss pode ser temporariamente atordoado após sofrer dano suficiente.
Derrotar o boss encerra o jogo e garante a vitória do jogador.
Itens (Power-ups)
Durante as ondas, inimigos podem liberar itens temporários:
- 🛡️ Escudo: Protege o jogador contra dano por um período limitado.
- 💥 Tiro Triplo: Permite disparos múltiplos simultâneos por tempo determinado.
🧑💻 Autor
- Breno de Souza Guedes
- Daniel Souza Crisostomo
- Trabalho Final – Programação Orientada a Objetos
Como Executar
- Tenha o Java 17 ou superior instalado.
- Clone o repositório ou faça o download do código-fonte.
- Abra o projeto em uma IDE (IntelliJ IDEA, Eclipse ou NetBeans).
- Execute a classe
Container.java que contém o método main.
- Certifique-se de que a pasta
res esteja corretamente configurada no classpath para carregar imagens e sons.