Лучший способ, особенно, если всё находится в движении - делай в векторах.
Например есть класс вектора (сам создаешь/юзаешь чужой) - типа 2 точки с координатами x и y.
Дальше всё просто:
1. добавляешь к каждому вектору свойство типа торможение/ускорение (обычно исп. название friction).
2. добавляешь к своему объекту свойства:
speed (тип - вектор)
gravity (тип - вектор)
...
3. в каждую перерисовку делаешь следущее:
создаешь временный вектор (для преобразований), присваиваешь временному вектору по очереди свои векторы(gravity, ...) и делаешь ему перемножение на его свойство friction (если надо), затем каждый комбинируешь с вектором speed.
После энтого всего смещаешь свой объект на вектор speed.
Элементарно! А гланое не надо лишних sin, cos, atan, ... !
