Estoy construyendo un juego con jugadores y misiles.
Quiero disparar un misil de P1 a P2. El misil siempre debe tomar exactamente cinco segundos para llegar a P2. El misil también debe seguir a P2. Si P2 se mueve más lejos, el misil debe acelerar para satisfacer la restricción de tiempo. Si P2 se mueve hacia la izquierda, el misil debe moverse hacia la izquierda (y también cambiar la velocidad). Si P2 se acerca a P1, el misil debe reducir la velocidad.
es posible? ¿Cuál es la mejor manera de lograr esto?
Actualmente no tengo una clase Vector2D (esto no es realmente un juego, pero la analogía funciona bien), así que si es posible, me gustaría una solución que no requiera una.
Editar: Esto tampoco es en realidad un misil. :)
¡Gracias!
Respuestas:
La edición es tranquilizadora. :)
Bien, aquí hay un ciclo de actualización sencillo ...
Suponiendo que cuando disparamos el misil, inicializamos
remainingFlightTime = 5f
entonces ...fuente
¿Por qué no elevar la posición y actualizar el destino objetivo a medida que cambia?
Puede que tenga que ver cómo funciona el lerping, pero se vería así:
al saltar, básicamente está cambiando la posición de un objeto durante un cierto período de tiempo, por lo que podría decir que está al 50% del camino de A a B y que el objeto se colocaría allí. Lerping es directo, por lo que siempre se moverá hacia el objetivo (como lo desee en los comentarios).
fuente