Implementar zoom por profundidad Z con perspectiva 3D + toggle
NUEVAS CARACTERÍSTICAS: - Zoom por profundidad Z: Escala sprites según distancia (0.5x-1.5x) - Toggle con Numpad / (KP_DIVIDE) para activar/desactivar perspectiva - Fix transición figura→física: Reset automático de depth_scale a 1.0 - Texto informativo: "DEPTH ZOOM ON/OFF" IMPLEMENTACIÓN TÉCNICA: - Ball class: Nueva variable depth_scale_ (0.5-1.5) - Ball class: Getters/setters getDepthScale() / setDepthScale() - Engine::addSpriteToBatch(): Parámetro scale con valor defecto 1.0 - Engine::addSpriteToBatch(): Cálculo de vértices escalados centrados - Engine::updateShape(): Cálculo depth_scale = 0.5 + z_normalized * 1.0 - Engine::render(): Pasa depth_scale al batch en modo SHAPE - Engine::toggleShapeMode(): Reset depth_scale en salida de figura - Engine: Variable depth_zoom_enabled_ (true por defecto) - Batch rendering: Mantiene performance (sin llamadas individuales) EFECTO VISUAL: - Pelotas lejanas (Z-): Pequeñas (50%) y oscuras - Pelotas medias (Z=0): Normales (100%) y brillo medio - Pelotas cercanas (Z+): Grandes (150%) y brillantes - Perspectiva 3D realista combinada con Z-sorting CONTROLES: - Numpad /: Toggle zoom por profundidad (solo en modo SHAPE) - Por defecto: ACTIVADO para máximo realismo 3D README ACTUALIZADO: - Añadida tecla KP_/ a tabla de controles - Actualizada sección "Características Técnicas" - Añadida línea "Zoom por profundidad" en características - Actualizada sección "Uso" con control de perspectiva 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -71,6 +71,7 @@ El nombre refleja su proposito: **ViBe** (vibe-coding experimental) + **Physics*
|
||||
| `KP_+` | **Aumentar escala de figura (+10%)** |
|
||||
| `KP_-` | **Reducir escala de figura (-10%)** |
|
||||
| `KP_*` | **Reset escala de figura a 100%** |
|
||||
| `KP_/` | **Toggle zoom por profundidad Z (perspectiva ON/OFF)** |
|
||||
|
||||
## 📊 Informacion en Pantalla
|
||||
|
||||
@@ -147,10 +148,11 @@ Cuando se activa el debug display con la tecla `H`:
|
||||
|
||||
- **Física de atracción**: Sistema spring-damper (Hooke's Law) para transición suave
|
||||
- **Profundidad Z simulada**: Color modulado según distancia (oscuro=fondo, brillante=frente)
|
||||
- **Zoom por profundidad**: Perspectiva 3D con escala variable (50%-150% según Z)
|
||||
- **Z-sorting**: Painter's Algorithm para oclusión correcta
|
||||
- **Escala dinámica**: Control manual con Numpad +/- (30% - 300%)
|
||||
- **Protección de clipping**: Escala limitada automáticamente según resolución
|
||||
- **Sin sprites adicionales**: Usa `SDL_SetTextureColorMod` para simular profundidad
|
||||
- **Sin sprites adicionales**: Usa `SDL_SetTextureColorMod` y vértices escalados para efectos 3D
|
||||
|
||||
### Parámetros Físicos (defines.h)
|
||||
|
||||
@@ -191,6 +193,7 @@ SHAPE_SCALE_STEP = 0.1f; // Incremento 10%
|
||||
|
||||
- **Activación**: Presiona Q/W/E/R/T/Y/U/I para figura específica, o F para toggle
|
||||
- **Escala**: Usa Numpad +/- para ajustar tamaño, * para reset
|
||||
- **Perspectiva**: Numpad / para activar/desactivar zoom por profundidad (ON por defecto)
|
||||
- **Salir**: G (sin gravedad), cursores (con gravedad), F (toggle), o 1-8 (cambiar escenario)
|
||||
- **Compatible**: Funciona con 1-100,000 pelotas
|
||||
- **Temas**: Mantiene paleta de colores activa
|
||||
|
||||
Reference in New Issue
Block a user