Primera nota: matemáticamente, no soy tan habilidoso en absoluto.Cómo utilizar una fórmula de parábola en AS3 para disparar una flecha que siempre interceptará un punto determinado
Jugué un juego en el iPhone hace un tiempo en el que presionas un punto, y una flecha dispara desde tu castillo, que siempre se cruza con el punto que presionaste. Quería hacer un juego similar, pensando que sería una tarea fácil y rápida; luego me di cuenta de que las matemáticas para esto están realmente más allá de mi nivel de habilidad.
Supongo que están usando una fórmula de parábola o algo que determinaría la velocidad y el ángulo necesarios cuando se lanza la flecha para que la flecha siempre se cruce con el punto en el que se hace clic.
Solo recuerdo vagamente cómo funcionan las parábolas de la escuela y no tienen ninguna posibilidad de encontrar fórmulas.
Cualquier ayuda matemática o ideas que pudieran ser más fáciles de implementar serían geniales.
Quiero terminar con una función en mi castillo, así:
package
{
import avian.framework.objects.AvElement;
public class Castle extends AvElement
{
/**
* Fires an arrow from this
* @param ix The x intersection point
* @param iy The y intersection point
*/
public function fire(ix:Number, iy:Number):void
{
var ar:Arrow = new Arrow();
ar.x = x;
ar.y = y;
// define angle and velocity based on ix, iy
// ar.fireAngle = ??
// ar.fireVelocity = ??
parent.addChild(ar);
}
}
}
actualización según las preguntas en los comentarios:
No habrá fuerzas aplicadas a la flecha como el viento , fricción, etc. Además, el punto de partida de la flecha se fija durante todo el juego (en el castillo).
Aquí es una imagen de ejemplo de un poco más de claridad:
de ser lo más claro posible:
- Flecha siempre comienza su viaje desde un punto fijo (por ejemplo: 40, 120).
- La flecha siempre debe interceptar una determinada coordenada.
- Una ruta lo más realista posible es algo que me gustaría lograr (obviamente, puedo disparar una flecha directamente para interceptar cualquier punto, pero la meta es hacer que la flecha se eleve primero, luego descender; coordinar en el punto más realista de su viaje).
Nota: para evitar el problema de que existan infinitos posibles parábolas - la velocidad de la flecha puede ser fijado - con tan sólo mirar a definir el ángulo de la flecha puede dejar al.
Solo una nota rápida: también necesitará un punto de partida (así como también el destino) – Cameron
¿Entonces hace clic donde desea que termine la flecha? Necesitarás coordenadas de origen también. El ángulo y la velocidad serán un rango de valores emparejados, a menos que uno sea fijo. Obviamente, la velocidad tiene que ser al menos la mínima para alcanzar la distancia en el ángulo óptimo. Pero si el ángulo es muy, entonces la velocidad también puede. Sin resistencia al aire, viento, en absoluto? Gravedad estándar de la tierra? – Orbling
Este [gráfico y las ecuaciones debajo de él] (http://www.physics.brocku.ca/~aknigavk/1P21/Kinematics/projectile-motion-1.jpg) son útiles. – Orbling