Имитация объекта, плавающего на воде

9

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

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

Подойдет ли двигатель дальнего следования? или другой двигатель будет более подходящим?

Аарон М
источник

Ответы:

5

Я делаю такие вещи с пулей , но ту же технику можно использовать с любым физическим движком. Плавучесть моделируется путем прикрепления к телу воображаемых поплавков, которые просто прикладывают силу, соответствующую их глубине под поверхностью в отдельных точках.

На временном шаге каждый поплавок проверяет уровень воды в своем положении, затем прикладывает усилие к твердому телу лодки в их положении относительно лодки. Я представляю каждый поплавок в виде цилиндра, который всегда вертикальн, относительно ориентации лодки. Сила пропорциональна тому, насколько глубоко они погружены, до максимума, определяемого их объемом.

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

Короткая демонстрация лодки, плывущей по волнам, здесь на YouTube .

Роб Агар
источник
0

Физика Farseer поддерживает все виды применения силы и интерции, так что это не будет проблемой, хотя я не уверен на 100%, если Farseer уже поддерживает жидкие тела (для воды), но если это поддерживается, то все должно быть в порядке. (Также обратите внимание, что Farseer - это физический движок 2D)

Рой Т.
источник
Я думаю, что они добавляют поддержку жидкостей в следующей версии Farseer (3.3)
Brainydexter