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

2.1 KiB

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:

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