применяя трение к объектам - PullRequest
1 голос
/ 14 мая 2011

У меня есть шар, который перемещается по экрану в зависимости от того, как наклоняется мой телефон. Как применить трение к мячу, чтобы, когда телефон лежал ровно, шарик в конце концов остановился?

Ответы [ 3 ]

2 голосов
/ 14 мая 2011

Не зная уровня детализации вашей модели или ваших точных методов, я бы сказал, что лучший способ сделать это - думать о трении как о векторе, который имеет небольшую постоянную величину и всегда указывает в направлении, противоположном направлению движения вашего шара.вектор скоростиВы можете придумать подходящие значения величин для различных типов моделируемой поверхности просто экспериментально.Каждый раз, когда вы обновляете положение и скорость мяча, просто включите этот вектор трения в расчет.

1 голос
/ 14 мая 2011

Трение - это сила, которая действует противоположно движению, поэтому вам просто нужно создать вектор, представляющий трение, которое направлено в противоположном направлении от вашего вектора скорости.

Размер вектора трения определяет, насколько быстро объект остановится. Это постоянная величина, основанная на материале движущегося объекта и материале, по которому он движется. Просто придумайте что-нибудь подходящее для ваших целей.

Добавьте вектор трения к вектору ускорения (который равен нулю, когда iphone лежит на столе). Теперь просто выполните интерполяцию, как обычно, и в конечном итоге объект перестанет двигаться.

(Кстати, когда объект не движется, вектор трения должен быть установлен на ноль)

0 голосов
/ 14 мая 2011

Лучше использовать Box2d Для получения физики движения

В box2d для получения трения ...

используйте это

b2fixtureDef *fd;
fd->friction = 0.7;(or whatever)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...