Skip to content

Repository files navigation

🌻 Fúria Botânica

Um boss fight 2D feito em Java, com combate rápido, padrões progressivos e uma estética de animação vintage. O projeto foi criado como trabalho da disciplina de Programação Orientada a Objetos (POO).

Java 21 libGDX 1.14.1 Gradle 8.14.3 Licença MIT

Gameplay · Destaques · Controles · Como executar · Arquitetura

Batalha contra o boss floral em Fúria Botânica

Sobre o jogo

Em Fúria Botânica: O Jardim Maldito, você controla um pequeno herói preso em uma arena. Para sobreviver, é preciso ler os avisos do boss, atravessar sequências de espinhos e projéteis e encontrar espaço para contra-atacar.

A luta começa simples, mas ganha novos padrões, encadeamentos e ritmo conforme a vida da flor diminui. Tiros certeiros carregam o relógio especial. Quando ele estiver completo, um ataque mais poderoso pode mudar o rumo do duelo.

Gameplay

gameplay.mp4

O combate foi pensado em torno de quatro ações:

  1. Observar os avisos visuais e reconhecer o próximo padrão.
  2. Desviar com movimento, pulo e um dash com breve invencibilidade.
  3. Atacar continuamente para causar dano e carregar o especial.
  4. Adaptar-se quando o boss muda de fase e combina novos ataques.

Destaques

  • Boss em múltiplas fases: máquina de estados com padrões sorteados sem repetição imediata, transições próprias e uma etapa final mais agressiva.
  • Combate responsivo: pulo com coyote time e input buffer, dash, tiro contínuo, especial carregável, knockback e hitstop.
  • Ataques legíveis: telegraphs antecipam espinhos, sementes, bolotas, pólen e zonas de impacto.
  • Direção de arte vintage: cenário em camadas, animações desenhadas, textura de filme antigo e transições em íris.
  • Feedback audiovisual: partículas, camera shake, reações a acertos, locuções e trilhas que acompanham as fases da batalha.
  • Experiência completa: menu, introdução READY? / GO!, HUD, vitória, derrota e revanche rápida.
Como a batalha evolui (contém spoilers de gameplay)

Fase inicial

O boss alterna entre golpes de espinhos em diferentes alturas, rajadas direcionadas e chuva de pólen com áreas de queda sinalizadas.

Segunda fase

Ao chegar à metade da vida, a flor altera a arena e acelera o ritmo. Novos padrões incluem corredores de esporos, vinhas verticais, obstáculos em arco e ataques encadeados.

Fúria final

Nos últimos 20% de vida, o tempo de recuperação diminui e as sequências ficam mais intensas até o knockout.

Controles

Durante a batalha

Ação Controle
Mover A / D
Pular Espaço
Dash Shift esquerdo
Atirar Segurar botão esquerdo do mouse
Ataque especial Botão direito do mouse
Voltar ao menu Esc
Alternar tela cheia F11

Nos menus

Ação Controle
Navegar W / S ou /
Confirmar Enter ou Espaço
Jogar novamente R na tela final
Voltar ao menu Esc ou Enter na tela final

Como executar

Requisitos

  • JDK 21 instalado e configurado no JAVA_HOME.
  • Windows, Linux ou macOS com suporte a OpenGL compatível com LWJGL3.
  • Git para clonar o repositório.

O Gradle Wrapper já está incluído; não é necessário instalar o Gradle separadamente.

1. Clone o projeto

git clone https://github.com/matrodrigs/java-bossfight.git
cd java-bossfight

2. Inicie o jogo

No Windows:

.\gradlew.bat run

No Linux ou macOS:

chmod +x gradlew
./gradlew run

Na primeira execução, o Gradle baixa as dependências automaticamente. O launcher abre o jogo em tela cheia, usando uma resolução interna de 1280 × 720.

IntelliJ IDEA

  1. Abra a pasta do repositório como um projeto Gradle.
  2. Selecione o JDK 21 para o projeto.
  3. Execute a task Gradle run ou a classe com.bossfight.desktop.DesktopLauncher.

Tecnologias

Tecnologia Uso no projeto
Java 21 Código do jogo e recursos modernos da linguagem
libGDX 1.14.1 Loop principal, input, áudio, câmera e renderização 2D
LWJGL3 Backend desktop e integração com OpenGL
Gradle 8.14.3 Build, dependências e execução
Java2D Geração das texturas de texto com as fontes do projeto

Arquitetura

O código separa regras de combate, apresentação e fluxo de telas para manter a luta fácil de evoluir:

src/main/java/com/bossfight/
├── audio/       # Música, locuções e efeitos sonoros
├── boss/        # Boss, fases, ataques e telegraphs
├── config/      # Constantes de gameplay e da arena
├── desktop/     # Launcher LWJGL3
├── effects/     # Partículas, câmera, filme antigo e transições
├── entities/    # Jogador, projéteis e hitboxes
├── gameplay/    # Colisões e ciclo de vida dos projéteis
├── input/       # Leitura e buffer dos controles
├── rendering/   # Cenário, sprites, textos e HUD
└── screens/     # Menu, batalha e telas finais

assets/
├── audio/       # Músicas, ambiência, efeitos e locuções
├── fonts/       # Fontes empacotadas e suas licenças
└── sprites/     # Cenário, personagens, projéteis e interface

A lógica do boss usa o padrão State: cada ataque implementa seu próprio comportamento, telegraph e encerramento, enquanto Boss decide transições, fases e encadeamentos.

Build de verificação

Para compilar o projeto sem iniciar o jogo:

./gradlew build

No Windows, use .\gradlew.bat build.

Assets e créditos

Este projeto não inclui sprites, músicas, efeitos, logos ou fontes oficiais de Cuphead. A inspiração está na linguagem visual das animações clássicas. Os arquivos usados pelo jogo foram criados ou obtidos separadamente.

As origens e licenças de imagens, áudios e fontes estão documentadas em docs/ASSETS_LICENSES.md. Assets de terceiros permanecem sob suas licenças originais e não são relicenciados pela MIT.

Licença

O código-fonte deste projeto está disponível sob a Licença MIT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages