Estaba buscando en google documentacion sobre
pygame.K_UP, y encontre este post. Lo curioso es que estoy escribiendo un programita de tiro parabolico!
En fin, decidi unirme al foro para opinar sobre el tiro parabolico.
Alguien preguntaba sobre las ecuaciones, asi que pense en dar un poco mas de detalles. En el caso más simple, solamente la gravedad actua sobre la bala. Recuerden que la aceleracion de la gravedad es constante, por lo que tenemos un problema de aceleracion constante. La solucion fisica a este problema es en general:
Código:
x(t) = x0 + vx0 * t + 1/2 * ax * t^2
y(t) = y0 + vy0 * t + 1/2 * ay * t^2
Es decir, la posicion (x,y) de la particula, en cualquier instante t del tiempo, esta dada por esas formulas, donde:
(x0, y0): posicion inicial de la particula
(vx0, vy0): velocidad inicial de la particula
(ax, ay): aceleracion que experimenta la particula (debe ser
constante!)
t: tiempo
Si lo aplicamos al problema del tiro parabolico, la aceleracion es la de la gravedad, que solo actua en direccion vertical (y hacia abajo): ax = 0, ay = -g. Las ecuaciones se simplifican entonces a:
Código:
x(t) = x0 + vx0 * t
y(t) = y0 + vy0 * t - 1/2 * g * t^2
donde g = 9.81 es el valor de la aceleracion de la gravedad.
Agregar fricion (por ejemplo para incluir viento) es un poco mas complicado, ya que como indica alvlin, es necesario introducir una fuerza adicional, por ejemplo F = -b * v. El problema es que al hacerlo, la aceleracion de la particula deja de ser constante, y entonces la solucion general que puse arriba ya no es valida - se tienen que resolver las ecuaciones fisicas de forma distinta. De hecho, dependiendo de como se modele la friccion (es decir, que formula usemos para la fuerza), es posible que no se pueda encontrar una solucion exacta a las ecuaciones fisicas. En esos casos se utiliza una filosofia distinta para modelar la fisica.