GTA2 como Car Physics, pero extremadamente simplificado
Está bien, así que este problema me ha estado molestando durante más tiempo. ¿Puede alguien mostrarme o señalarme un algoritmo que puede controlar un coche como el de GTA2? Después de 3 días de investigación todo lo que podía llegar con todos estos algoritmos para el uso de pivote y articulaciones en las ruedas y ruedas separadas y tal. ¿Es ésa la única manera de conseguir el movimiento simple del coche como el de GTA2?
Quiero ser capaz de utilizar el algoritmo en un rectángulo sin ruedas, pero todavía ser capaz de tener la deriva del coche. ¿Es eso posible? Por cierto, estoy usign Box2D para el juego 2D.
- Defectos de Android Paint ()
- Fondo transparente en ImageButton con efecto de ondulación?
- Android: "El servidor no pudo procesar tu apk. Intentar de nuevo .. "error al cargar en el mercado
- Cómo analizar un flujo de entrada JSON
- Android Studio con CPU 100% en un procesador i7 para el proyecto Reconstruir
Sé que esto es más adecuado para gamedev pero por alguna razón no puedo publicar preguntas.
- ¿Cómo puedo descifrar la URL en la aplicación Android
- ¿Por qué DrawerLayout a veces falla al abrirse?
- Uso de DownloadManager para descargar en una nueva carpeta en el almacenamiento de teléfonos
- Depurar el proyecto de la biblioteca de Android con el código fuente de java
- Cómo bloquear los botones de Android / teléfono de código (bloqueo de pantalla)?
- Android Studio: ¿dónde está la lista de funciones?
- Cómo analizar valores float de cadena utilizando REGEX en java
- ¿Cómo clasificar en orden alfabético sin tener en cuenta las mayúsculas y minúsculas?
Una respuesta simple que puede convertirse en algo bastante grande así que intentaré explicar presentando diferentes puntos en un orden creciente de sofisticación. Asumiré un conocimiento básico de la física.
-
Suponga un radio de giro fijo (no está mal si está usando un teclado, bastante molesto si tiene un controlador analógico). Nada como probar diferentes posiciones para averiguar qué radio se siente bien.
-
Suponga que usted tiene ruedas que están inicialmente hacia adelante y al presionar la llave de giro que progresivamente giran al máximo posible. Esto significa básicamente disminuir el radio desde el infinito hasta el radio más pequeño posible (se puede determinar fácilmente la relación entre el ángulo de las ruedas y el radio). Si tiene un controlador analógico, entonces el radio debe ser controlado por los valores continuos de la entrada analógica.
-
¡Que entren las fuerzas! Cuando usted está dando vuelta en un coche, usted gira solamente debido a una aceleración centrípeta. Que la aceleración centrípeta es causada por una fuerza que es en realidad la fricción del coche con la carretera. Usted puede considerar la fricción constante y la masa de su vehículo constante sin grandes problemas, entonces usted tiene una relación entre la velocidad del coche y el radio crítico (el radio mínimo que puede dar vuelta dada la velocidad). La aceleración centrípeta es a = v ^ 2 / r = fricción / masa de modo que el radio crítico r = v ^ 2 * masa / fricción. Puede considerar que no importa cuánto gire, el vehículo se desviará y, al máximo, describirá esta curva. Esto debería darle una simulación agradable pero todavía no el sentimiento de "pérdida de control". ¡Para esto vea el siguiente punto! movimiento circular
-
La teoría es exactamente la misma que en el punto anterior, pero lo principal es que la fricción en la realidad no es constante. De hecho, la fricción estática siempre será mayor que la fricción cinética. En la práctica, usted debe tener una fricción estática y una (menor) fricción cinética. Calcula r de acuerdo con la fricción estática y cuando tu velocidad es demasiado grande para lograr que r (esto es cuando te desviarías) comienzas a calcular el nuevo r usando la fricción cinética. Esto le dará la sensación de perder el control, pero el vehículo todavía no girará. Fricción
-
A fin de ver el giro, tendrías que considerar las fuerzas aplicadas en cada rueda (es el hecho de que las diferentes ruedas están bajo diferentes fuerzas que hace girar el coche) y considerar algunos más avanzados de la física, como qué ruedas son la conducción Ruedas y también considerar la fricción cinética no una constante. Sin embargo, creo que esto está fuera de su alcance.
-
Alternativamente, usted puede hacer algo que GTA2 parecía hacer. En el momento en que se sabe que se van a la deriva o están a la deriva demasiado (establecer un umbral aquí) sólo programaticamente hacer que el vehículo pierda el control y giro.
Espero que esto ayude, si usted tiene alguna duda específica sólo pedir.
Encontré el http://www.banditracer.eu/carexample/ demostrado un ejemplo simple para usar Box2D para demostrar el movimiento del coche. El http://www.banditracer.eu/ tiene un juego de código abierto que puedes observar para ver si tiene el movimiento de deriva que buscas. Usted puede comprobar hacia fuera el código y ver cómo manejaron el movimiento de deriva y hacer iguales para su proyecto.
- Proguard: IllegalArgumentException: Las pilas tienen diferentes tamaños de corriente
- Android Arrastre y suelte del botón