box2d вопросы для новичков в игре о кораблях: применить силу, гравитацию + воду

Я только начинаю с cocos2d + box2d. Я хотел бы создать простую 2D-игру с кораблями, в которой вы смотрите сверху (с неба) на море с кораблями.

Может ли кто-нибудь дать мне очень простой пример, как применить ветер к моему миру? Должен ли я применять Силу к каждому корпусу корабля?

А как же гравитация? Поскольку он идет прямо вниз, должен ли я установить его на 0? гравитация.Set(0.0f, 0.0f)? Это на самом деле повалило бы корабль..

Надо ли как-то бороться с водой? например, с его плотностью?


person jospBln    schedule 12.02.2011    source источник


Ответы (2)


вам, вероятно, придется определить, где находятся корабли, а затем каким-то образом применить к ним силу.

и да, установите гравитацию на 0.

и вода вообще не должна быть объектом. просто как фоновое изображение.

person Daniel says Reinstate Monica    schedule 12.02.2011

Если вы смотрите сверху и хотите применить силу ветра ко всем своим кораблям, вы можете использовать вектор гравитации. В этом случае сила ветра будет применяться к вашим объектам автоматически.

Если на сцене есть другие динамические объекты, рекомендуется сохранить список (std::list или NSMutableArray) указателей на все ваши корабли. Обратите внимание, что по умолчанию box2D сбрасывает все силы на каждом шаге симуляции. Вы можете отключить это свойство или применять силы вручную на каждом шаге симуляции.

person Andrew    schedule 12.02.2011