Luchando para tomar una decisión sobre la implementación de una mecánica de ascenso de repisa para un juego de plataformas 2D impulsado por la física. ¿Cuál es la mejor manera de hacerlo sin que se vuelva demasiado complejo?
Hasta ahora entiendo (aficionado aquí no un profesional) hay algunas opciones que incluyen:
Aplique fuerza controlada al cuerpo rígido en el eje y hasta que la posición de la raíz esté justo por encima de la posición de la mano, luego aplique suficiente fuerza en el eje x para que el personaje se pare en la plataforma. Al mismo tiempo, sincronice esto de alguna manera con las animaciones de ascenso.
Observaciones : el movimiento es fácil aquí e incluso puede controlarse mediante una junta deslizante prismática, pero no estoy seguro de cómo mantendría las animaciones (columna vertebral) sincronizadas con el movimiento.
Animación de movimiento de raíz que impulsa la posición raíz del personaje. Teletransporta el cuerpo rígido cuando esté completo y espero que box2d aún pueda responder adecuadamente a tiempo a cualquier colisión si algún objeto cae del cielo.
Observaciones : suena más fácil de animar, pero no estoy seguro de si tendré algún problema con el tiempo de ejecución de la columna vertebral, box2d o más adelante en las plataformas móviles y plataformas de altura variada.
Aplique la restricción IK mediante programación en las manos para bloquearlas en su lugar y proceda a rotar los huesos manualmente o aplique pequeñas animaciones preestablecidas (pocas teclas / cuadros) mientras aplica la fuerza necesaria al cuerpo rígido al mismo tiempo.
Observaciones : parece que esto le daría el máximo control al jugador, pero me parece complicado implementarlo a mi nivel, no estoy seguro de dónde comenzaría.
¡Gracias por adelantado por cualquier contribución!
FYI: Este es un motor basado en ECS (libgdx + ashley) con box2d. El agarre de repisa ya está implementado como un sistema separado, por lo que podemos suponer aquí que el personaje ya es capaz de colgarse de una repisa de cualquier altura.