Estoy haciendo un juego de billar como juego. Este juego requiere rebotes reflectantes correctos (o muy precisos). Probé Box2D y bala Física , pero ambos tienen este problema.
Si hay una pared encima de esta imagen, se espera una línea roja en el curso de una pelota real en un juego de billar. Pero los motores a menudo muestran un curso de línea verde. Especialmente,
- Esto sucede después de que una bola que se mueve lentamente golpea la pared.
- A veces una bola que se mueve rápidamente se vuelve más lenta de repente.
Estoy encontrando un motor de física que puede simular el juego de billar con la mayor precisión posible sin estos problemas. ¿Puedo obtener algunas recomendaciones? Ahora estoy cavando Newton Game Dynamics , pero no estoy seguro de que el motor muestre lo que quiero. Estoy considerando el motor PhysX como una próxima prueba, y tengo que hacer el mío si nada funciona. Pero es obvio que tomará mucho tiempo, así que desearía no hacerlo. Seré muy apreciado si me ahorras tiempo. Y, por supuesto, la solución con Box2D / Bullet Physics también es bienvenida.
Estoy trabajando con C / C ++ / Objective + C en iOS.
Adjunto mi configuración con Box2D.
Paredes
- forma de caja estática
- amortiguación lineal / angular = 0.1
- restitución = 1.0
- fricción = 100
- densidad = 10
- bala = falso
- rotación fija = falso
- escala inercial = 1.0
Pelotas
- forma de esfera dinámica
- amortiguación lineal / angular = 0.1
- restitución = 1.0
- fricción = 100
- densidad = 20
- bala = verdadero
- rotación fija = falso
- escala inercial = 1.0