Простой способ
Немного о векторах. http://chortle.ccsu.edu/VectorLessons/vectorIndex.html
Движение обычно рассчитывается путем добавления вектора, масштабированного по временной дельте, к текущему положению. (Разговоры о математике делают простые вещи такими сложными).
В основном: new_Pos = old_Pos + mov_Vec * time_delta
Таким образом, изменяя mov_Vec, вы можете увеличивать/уменьшать скорость.
Вы также можете сделать это на x,y new_x = old_x + mov_x * time_delta
Использование библиотеки физики
Если вы используете библиотеку физики, вы можете применить силу к объекту, чтобы переместить его. Вы также можете установить угловую скорость, если хотите, чтобы он вращался.
Если бы вы использовали Box2d, вы бы сделали что-то вроде этого:
body->ApplyImpulse( b2Vec2(1,1), body->GetWorldCenter() );
Есть разница между приложением силы и импульсом в box2d
Некоторые сайты для проверки
person
HyperCas
schedule
05.07.2010