Hola, recientemente aprendí la biblioteca de gráficos SFML y me gustaría usar o hacer un sistema de física 2D de cuerpo no rígido para usar con ella. Tengo tres preguntas:
La definición de cuerpo rígido en Box2d es
Una porción de materia que es tan fuerte que la distancia entre dos pedazos de materia en la porción es completamente constante.
Y esto es exactamente lo que no quiero, ya que me gustaría hacer cuerpos elásticos, deformables, rompibles y de reconexión. 1. ¿Hay motores de física 2D simples, pero con este tipo de características? preferiblemente gratis o de código abierto?
2. Si no, ¿podría usar box2d y trabajar para crearlo incluso si está basado en cuerpos rígidos?
3. Finalmente, si hay un motor de física simple como este, ¿debería seguir adelante con el proceso de crear uno nuevo de todos modos, simplemente por experiencia y para mejorar el conocimiento de matemáticas y física?Siento que ayudaría si alguna vez quisiera modificar el código de un motor existente o crear un juego con una física realmente única.
¡Gracias!
Respuestas:
Puede usar sistemas de cuerpo rígido para crear un cuerpo blando y una dinámica de fluidos. ¿Razón física detrás de esto? Bueno, esencialmente, los átomos son pequeños cuerpos rígidos. Esto no es completamente cierto, por supuesto, pero por simplicidad puedes verlos como tales. Y los cuerpos blandos obviamente están hechos de átomos.
Entonces, ¿cómo se crean "cuerpos blandos" utilizando un motor de cuerpo rígido como Box2D?
La técnica esencial es unir puntos en su cuerpo usando articulaciones. Por ejemplo, si conecta los extremos de una lista de líneas usando juntas de distancia (lo que significa que la distancia entre dos juntas debe ser constante), se comportará más o menos como un paño.
Pero esa es solo una descripción aproximada. Ewjordan, uno de los desarrolladores del puerto Java de Box2D, ha realizado una gran cantidad de "trabajo de campo elemental" con Box2D. Aquí hay un buen punto de partida: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978
fuente
El término que está buscando es física de cuerpo blando.
Wikipedia tiene una buena lista. Todos son 3D AFAICS, pero deberían ser buenos.
También revise esta pregunta SO.
Un gran libro (es un cuerpo rígido, pero todas las matemáticas y la física están ahí; también es 3D, pero es trivial para transferir a 2D) es Game Physics Engine Development . Implementa un sistema basado en partículas antes de pasar a cuerpos rígidos y colisión.
fuente
Una forma sencilla de simular cuerpos blandos es conectar pequeños cuerpos rígidos con juntas elásticas. Entonces, la parte difícil es ajustar los parámetros de su modelo y asignar la textura al modelo subyacente.
La siguiente publicación de blog proporciona una implementación de una bola deformable con motor cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html
fuente