Ver Mensaje Individual
  #3  
Antiguo 07-06-2012
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Para el tema de hacer una parábola, tendrás que jugar con senos cosenos, algo que simule gravedad y el campo dirección será directamente el ángulo en el que está cayendo/subiendo la pelota.
Todo esto suponiendo una velocidad constante... si quieres aceleración según va cayendo y deceleración según va subiendo, deberás agregar esta variable también.

Por ejemplo:
Col y lin será numeros reales (con coma)

Si estás en
  • col = 10.0
  • lin = 10.0
  • y el paso es 1 (te mueves de a 1 caracter)
  • y la direccion es 45º
la siguiente posición será:
col := col * sin(direccion);
lin := lin * cos(direccion);

Luego deberás posicionarte donde debes escribir la pelota.
Esto requiere valores enteros (sin coma)
GotoXY(Trunc(col), Trunc(lin)); // Trunc devuelve la parte entera de un valor.

Ten en cuenta que los valores para los grados deberá estar expresados en radianes (0-2*pi) (0-6.28).
Ten en cuenta que el seno y coseno te darán valores iguales y tendrás que controlarlos (sin(3/4*pi) = sin(1/4*pi)) porque será direcciones diferentes.
Responder Con Cita