En un tema anterior que hice pensé que necesitaba la fórmula que allí me dieron, pero me equivoqué. Les dejo una imagen de ejemplo y les cuento algunas variables que uso (pueden llamarlas como les sea más cómodo):
Z:
Altura de la pelota (en el ejemplo empieza en 0).
ZSpeed (inicial):
Velocidad de Z (en el ej es 5), lo que preciso calcular, luego explicaré por qué.
Disminución de ZSpeed por frame (es un modo de contar el tiempo):
Simulación de la gravedad, cuánto cae la pelota por frame. Es 1.
YSpeed:
Velocidad del movimiento Y (en el ej es 1), cuánto por frame se mueve hacia la cancha del rival.
DistanciaY al punto de pique:
No es la distancia en sí, que se contaría diagonalmente, sino simplemente la distancia considerando el eje de las Y (lo que se asumiría como X). En el ej es 11.
ShotTime:
Tiempo antes de que el tiro llegue al suelo. Resultado de DistanciaY dividido YSpeed. En el ej es 11.
Disminución total (desde el primer movimiento de la pelota hasta tocar el piso) de ZSpeed:
Si de lo demás no estoy seguro de que sea importante, de esto menos. En el ejemplo es 66, que resulta de la fórmula de Gauss aplicada a ShotTime.
No es lo que la pelota caerá, es la cantidad de disminución que habrá en ZSpeed antes de llegar al suelo. Lo que sucede es que cuando la pelota está subiendo disminuye la velocidad conque sube, pero no es que empiece a bajar instantáneamente... Dicho de otra forma, ZSpeed llegará un momento en que ser negativo pero podría empezar positivo.
-------
Bueno como dije preciso la ecuación para calcular ZSpeed. Porque la defino no en base a la fuerza del jugador sino en función de cómo sea el tiro (X e Y, definidos sí por la fuerza). Porque así me resulta más fácil. Bueno la pregunta es cual tiene que ser la ZSpeed inicial (cuánto hacia arriba tiene que ir la pelota en principio) como para que caiga en el punto que se marque, no antes ni después.
En el ejemplo las variables son:
Z = 0
Disminución de ZSpeed por frame = 1
YSpeed = 1
DistanciaY al punto de pique = 11
ShotTime = 11
Disminución total de ZSpeed = 66
Entonces:
ZSpeed = 5
¿Cómo se llega a eso mediante ecuaciones? Yo llegué a ese resultado contando en la imagen y sumando 1 (porque desde el primer movimiento hay disminución, si es 5 aparecerá en 4).
Puede que deban considerar menos datos (YSpeed y DistanciaY por ejemplo son importantes para ShotTime, pero teniendo eso podría alcanzar).
Si quieren más ejemplos simplemente dejen de lado partes iniciales de la imagen. Por ejemplo, podría tomarse como inicio cuando la pelota tiene Z 1 y habría 1 menos de distancia, etc.
Gracias desde ya.