Плавучесть с Box2D на iPhone - PullRequest
       2

Плавучесть с Box2D на iPhone

3 голосов
/ 16 апреля 2011

Мне было интересно, если кто-нибудь может дать мне советы о том, как добиться следующего с помощью Box2D на iphone:

1) У меня есть мир Box2D с нормальной силой тяжести -9,8 2) Нижняя половинаэкран - это водоем

Поэтому, когда мой спрайт попадает в водоем, я хочу, чтобы он реагировал плавучестью (аналогично тому, что происходит в этом видео: http://www.youtube.com/watch?v=0uX-1GXYIss)

лучший способ добиться этого для

1) просто вычислить позицию y спрайта главного персонажа и затем переключить переменную гравитации соответственно

или 2) есть ли специальная функция, встроенная в Box2D, которая будетпозвольте мне настроить мой «водяной» спрайт так, чтобы он вел себя как вода в моем мире, и «подтолкнуть» моего спрайта главного героя (при сохранении мировой гравитации 9,8)

Любая информация будет оценена

1 Ответ

4 голосов
/ 16 апреля 2011

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

Другая очень важная сила в жидкости - сила drag . Это то, что затрудняет перемещение объектов с высокой скоростью через густые жидкости. Сила сопротивления легко может быть оценена простым демпфированием скорости на некоторое постоянное значение: Force_drag = -b * v, где b - ваше значение демпфирования, а v - скорость объекта.

...