Prueba, en vez de calcular la distancia y dividirla por una constante, a calcular el cuadrado de la distancia; así la fuerza no es calculada de forma tan lineal:
Código:
deltax=father.x-xp;
deltay=father.y-yp;
speed1=(deltax*deltax + deltay*deltay)/5;
Prueba también con diferentes constantes (sube y baja ese cinco, a ver qué tal).
En cuanto a lo de la deceleración (restarle uno por frame a la velocidad), tu método es físicamente correcto si la aceleración es constante (en este caso, constante negativo). Si mal no recuerdo de mis clases de física de instituto (de aquellas en las que estaba despierto, quiero decir), la fuerza de rozamiento de la bola contra la superficie va a resultar en una deceleración constante en el sentido del movimiento; así que puedes hacerlo como lo estás haciendo hasta ahora.
Marcadores