Files
vibe3_physics/CLAUDE.md
Sergio Valor dec8d431f5 Implementar sistema de gravedad direccional con controles de cursor
- Añadir enum GravityDirection (UP/DOWN/LEFT/RIGHT) en defines.h
- Modificar Ball class para soportar gravedad multi-direccional
- Reescribir Ball::update() con lógica direccional completa
- Cambiar on_floor_ por on_surface_ (más genérico)
- Implementar detección de superficie según dirección de gravedad
- Añadir controles de teclado con teclas de cursor
- Actualizar debug display para mostrar dirección actual
- Aplicar fricción correctamente según superficie activa

Controles nuevos:
- ↑/↓/←/→: Cambiar dirección de gravedad
- H: Toggle debug display (incluye nueva info de gravedad)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 22:37:19 +02:00

76 lines
2.1 KiB
Markdown

# Claude Code Session - ViBe1 Delta
## Estado del Proyecto
**Proyecto:** ViBe1 Delta - Simulador de sprites con fisica
**Objetivo:** Implementar delta time para separar bucle de proceso del de renderizado
## Progreso Actual
### ✅ Completado
1. **Configuracion inicial**
- Reestructurar codigo: movido utilidades a `source/external/`
- Filtro nearest neighbor para texturas pixel-perfect
- Compilacion funcionando (Make y CMake)
2. **Sistema de metricas**
- Contador FPS en esquina superior derecha (amarillo)
- Control V-Sync con tecla "V" (ON/OFF)
- Display V-Sync en esquina superior izquierda (cian)
3. **Mejoras visuales**
- Tamaño pelota: 8x8 → 10x10 pixels
- Fondo aclarado: (32,32,32) → (64,64,64)
- Textura pelota redibujada con mejor calidad
### 🚧 En Proceso
- **Proximos pasos:** Implementar sistema delta time
- **Problema detectado:** Caracteres extraños en README.md (encoding)
### 📋 Controles Actuales
| Tecla | Accion |
|-------|---------|
| V | Alternar V-Sync ON/OFF |
| 1-8 | Cambiar numero de pelotas (1 a 100,000) |
| ESPACIO | Impulsar pelotas hacia arriba |
| G | Alternar direccion gravedad |
| ESC | Salir |
## Arquitectura Actual
```
source/
├── main.cpp # Bucle principal + FPS/V-Sync
├── ball.h/.cpp # Logica fisica pelotas
├── defines.h # Constantes (BALL_SIZE=10)
└── external/ # Utilidades externas
├── texture.h/.cpp # Gestion texturas + nearest filter
├── sprite.h/.cpp # Sistema sprites
├── dbgtxt.h # Debug text + nearest filter
└── stb_image.h # Carga imagenes
```
## Bucket Actual: FPS Acoplado
El sistema usa bucle acoplado a 60 FPS:
```cpp
if (SDL_GetTicks() - ticks > DEMO_SPEED) { // 16.67ms
// Solo aqui se actualiza fisica
}
```
**Problema:** Fisica dependiente del framerate → Inconsistencia cross-platform
## Delta Time - Plan de Implementacion
1. **Sistema timing independiente**
2. **Bucle desacoplado** logica vs renderizado
3. **Interpolacion** para renderizado suave
4. **Optimizaciones** rendimiento
---
*Archivo de seguimiento para sesiones Claude Code*