![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 22
|
Здравствуйте.
Вопрос: как сделать так, чтобы гравитация не действовала на некоторые избранные тела, но действовала на все остальные? Первое, что приходит на ум, это компенсировать силу гравитации равной ей по модулю,но противоположенно направленной силой с помощью функции ApplyForce. Инициализация: var env:b2AABB = new b2AABB (); env.lowerBound.Set (-100.0, -100.0); env.upperBound.Set (100.0, 100.0); var gravity:b2Vec2 = new b2Vec2 (0.0, 10.0); m_b2dWorld = new b2World (env, gravity, true); ... m_b2dWorld.Step(1/24, 30); var body = m_b2dWorld.GetBodyList(); while (body) { body.ApplyForce (new b2Vec2 (0, -10), body.GetPosition ()); //body.SetLinearVelocity (new b2Vec2 (0, 0)); body = body.GetNext (); } в тоже время другие - падают вниз как обычно. Второй попыткой было обнуление y-составляющей линейной скорости. В этом случае тела медленно, словно перышки, но опускаются на землю. Подскажите, пожалуйста, как решить данную проблему. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Гравитация - это ускорение свободного падения, а не сила.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 22
|
Вооот я тупанул!
Огромное спасибо, -De-! А то я уже внутрь Box2D полез отключать. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|