He visto este juego
Pantalones elegantes 2 . Y lo que noté aparte de la física y las hermosas animaciones es que el personaje se mueve a lo largo de las pendientes, incluso en pendientes curvas. Tengo poca experiencia en Box2d, pero este concepto de pendientes curvas es nuevo para mí. Sería de gran ayuda para mí si alguien me iluminara sobre este concepto y su implementación. Incluso si la implementación no está en box2d, es bienvenida.
game-design
flash
box2d
physics-engine
Vishnu
fuente
fuente
Respuestas:
¿Cómo se obtienen curvas en Box2D?
En la versión inédita de Box2D , hay dos nuevos tipos de formas, b2LoopShape y b2EdgeShape , que le permiten crear curvas a partir de una secuencia de segmentos de línea.
En la versión lanzada, puede usar varias cajas pequeñas establecidas en ángulos para obtener un efecto similar, pero los cuerpos tienden a hacer cosas inestables e inesperadas cerca de los puntos de conexión. Por lo tanto, recomendaría usar la versión inédita.
¿Cómo puede un personaje caer por la curva?
¡Haz del personaje una rueda! Mi pregunta sobre la física de plataformas tiene cierta discusión sobre esto , pero la idea básica es montar el cuerpo de tu personaje en una rueda giratoria y moverse aplicando fuerza de rotación a la rueda. Aunque (en realidad, porque) la rueda tiene fricción, la fuerza descendente de la gravedad hará que gire en pendientes, como una rueda real. Al cambiar los parámetros del motor de la junta giratoria, puede hacer que resista la rotación tanto como sea necesario para evitar que ruede por pequeñas pendientes.
fuente
Fancy Pants se hizo en Flash, y Flash tiene un método específico llamado 'hitTest' que le permite probar un píxel (en este caso, probablemente realiza 2-3 Test de hit en la parte inferior del personaje de Fancy Pants) contra lo que se dibuja dentro de un objeto de clip de película designado. Puede ser un poco complicado hacerlo sentir bien, pero esta función incorporada es la razón por la cual tantos juegos Flash tienen colisiones con pendientes curvas. El proceso es mucho más complicado para la mayoría de los otros motores, y generalmente debe hacerse manualmente, pero hay algunos métodos diferentes.
El método con el que estoy más familiarizado es si su motor está basado en mosaicos (piense en Sonic the Hedgehog), los mosaicos designados como curvos podrían tener una fórmula que determine la posición de colisión 'Y' en función de la posición 'X' actual del personaje en ese azulejo Tendría que determinar la fórmula en función de la inclinación de una pendiente y la curva que esté buscando. Podría usar una calculadora gráfica o un programa de gráficos para experimentar con las fórmulas. Puede tener múltiples mosaicos con diferentes curvas y fórmulas asociadas con ellos de esta manera.
fuente