Uma simulação em Java que cria efeitos visuais de fogos de artifício, com partículas que explodem, se movem e se dissipam com gravidade e resistência do ar. Ideal para estudo de sistemas de partículas, física simples e visualizações gráficas.
Este projeto foi desenvolvido com as seguintes tecnologias:
- Java
- Java Swing e AWT (Abstract Window Toolkit) para a interface gráfica.
- Explosões: Cria explosões de partículas com diversas cores, tamanhos e velocidades.
- Gravidade: As partículas são puxadas para baixo conforme avançam no tempo.
- Resistência: A velocidade diminui com o tempo, simulando o arrasto no ar.
- Dissipação: As partículas perdem intensidade, brilho ou tamanho até desaparecerem.
- Multiplicidade: Muitas partículas simultâneas para gerar efeitos densos e realistas.
- Configuração Dinâmica: Ajuste de parâmetros no código para experimentar diferentes visuais.
A lógica do projeto está dividida nos seguintes arquivos principais:
/Fireworks_Java
├── src/
│ ├── App.java # Ponto de entrada, cria a janela e inicia o loop.
│ ├── Tela.java # Gerencia a lógica da física e o estado de todos os objetos.
│ ├── Firework.java # Representa cada fogo de artifício, que gera partículas.
│ ├── Renderizador.java # Responsável por desenhar os objetos na tela.
│ ├── Vector2D.java # Classe auxiliar para melhor controle sobre os vetores.
│ └── GerenciadorDeEntrada.java # Captura e processa os inputs do mouse (cliques, arrastar).
├── .gitignore
└── README.md
Para executar este projeto, você precisa ter o JDK (Java Development Kit) instalado em sua máquina.
# 1. Clone o repositório
git clone https://github.com/ferreiraryan/Fireworks_Java.git
# 2. Acesse o diretório
cd Fireworks_Java
# 3. Compile e execute
javac src/*.java
java -cp src App
Sinta-se à vontade para contribuir! Basta seguir os passos abaixo:
- Faça um fork do projeto.
- Crie uma branch com a sua feature:
git checkout -b minha-feature - Faça commit das suas alterações:
git commit -m 'Adiciona nova feature' - Envie para o GitHub:
git push origin minha-feature - Abra um Pull Request
- Ryan Ferreira - [email protected]
- GitHub - https://github.com/ferreiraryan
- LinkedIn - https://www.linkedin.com/in/ferryan/