sevenx_engine 0.2.11

Engine de jogos 2D/3D completa com suporte Android, física, áudio, partículas, tilemap, UI, eventos e sistema 3D avançado com PBR.
Documentation
# 🎮 Testando Exemplos 3D


## ✅ Exemplo 3D Simples (RECOMENDADO PARA COMEÇAR)


Este é o exemplo mais básico e garantido para funcionar:

```bash
cargo run --example 3d_demo_simple
```

### Controles:

- **WASD**: Move câmera (frente/trás/esquerda/direita)
- **Q/E**: Move câmera (cima/baixo)
- **SPACE**: Toggle wireframe/sólido

### O que você verá:

- ✅ Cubo 3D rotacionando
- ✅ Wireframe branco sobre fundo azul escuro
- ✅ Controles de câmera funcionando

---

## 🌟 Exemplo 3D Avançado (Com Partículas e Shaders)


Depois de testar o simples, experimente o avançado:

```bash
cargo run --example 3d_demo
```

### Controles:

- **WASD**: Move câmera
- **SPACE**: Toggle wireframe
- **1-3**: Alterna modos de shader
  - 1: Normal
  - 2: Fresnel (rim lighting)
  - 3: Fog (neblina)
- **E**: Explosão de partículas 3D
- **F**: Fogo
- **M**: Magia
- **T**: Trail (rastro)

### O que você verá:

- ✅ Cubo 3D rotacionando
- ✅ Partículas 3D (pressione E/F/M/T)
- ✅ Diferentes modos de shader
- ✅ Cores de fundo mudam com o shader

---

## 🎨 Exemplo 2D com Partículas Avançadas


```bash
cargo run --example particles_2d_advanced
```

### Controles:

- **1-6**: Alterna efeitos de partículas
  - 1: Explosão com turbulência
  - 2: Fogo com color shift
  - 3: Magia multicolorida
  - 4: Fumaça com aceleração
  - 5: Faíscas rápidas
  - 6: Chuva de partículas
- **Q/W/E/R**: Alterna shaders
  - Q: Bloom
  - W: Motion Blur
  - E: Hue Shift
  - R: Glitch
- **SPACE**: Limpa partículas

---

## 🔧 Troubleshooting


### Tela preta?


1. **Verifique se o cubo está visível**
   - Tente pressionar SPACE para alternar wireframe
   - Use WASD para mover a câmera

2. **Teste o exemplo simples primeiro**
   ```bash
   cargo run --example 3d_demo_simple

   ```

3. **Verifique a compilação**
   ```bash
   cargo check --examples

   ```

### Cubo muito pequeno?


O cubo tem 3 unidades de tamanho e está a 10 unidades da câmera. Se ainda estiver pequeno:
- Use **W** para aproximar a câmera
- Ou edite o código e aumente o tamanho do cubo:
  ```rust
  let mut cube = Mesh3D::cube(5.0);  // Maior
  ```

### Performance ruim?


1. **Reduza partículas**
   ```rust
   let particle_system = ParticleSystem3D::new(200);  // Menos partículas
   ```

2. **Desative shaders pesados**
   - Evite usar Bloom + outros shaders juntos

3. **Use wireframe**
   - Wireframe é mais rápido que sólido

---

## 📊 Especificações dos Exemplos


### 3d_demo_simple

- **Complexidade**: Baixa
- **FPS esperado**: 60+
- **Partículas**: Nenhuma
- **Shaders**: Nenhum
- **Ideal para**: Aprender 3D básico

### 3d_demo

- **Complexidade**: Média
- **FPS esperado**: 30-60
- **Partículas**: Até 500
- **Shaders**: 3 modos
- **Ideal para**: Ver recursos avançados

### particles_2d_advanced

- **Complexidade**: Média
- **FPS esperado**: 30-60
- **Partículas**: Até 1000
- **Shaders**: 4 modos
- **Ideal para**: Efeitos 2D

---

## 🚀 Próximos Passos


1. ✅ Teste `3d_demo_simple`
2. ✅ Experimente os controles
3. ✅ Teste `3d_demo` com partículas
4. ✅ Teste `particles_2d_advanced`
5. ✅ Modifique os exemplos
6. ✅ Crie seu próprio jogo!

---

## 💡 Dicas


- **Comece simples**: Use `3d_demo_simple` primeiro
- **Wireframe ajuda**: Pressione SPACE para ver a estrutura
- **Mova a câmera**: Use WASD/QE para explorar
- **Teste partículas**: Pressione E/F/M/T no 3d_demo
- **Combine efeitos**: Teste diferentes shaders e partículas juntos

**Divirta-se criando! 🎮✨**