gpt4 book ai didi

ios - Box2D Gravity 到特定对象?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:57 27 4
gpt4 key购买 nike

我看到每个人都说你在 Box2D 世界中像这样添加重力:

b2Vec2 gravity = b2Vec2(0.0f, -10.0f);
bool doSleep = false;
world = new b2World(gravity, doSleep);

问题是,如果我只想在包含来自 CCSprite 的用户数据的特定 b2Body 上使用重力怎么办?据我所知,这会将重力应用于世界上我不想要的一切,所以有人可以向我解释如何将这种重力仅应用于特定的 b2Body 吗?

谢谢!

编辑1:我可以只做这一行吗,

_bottomBody->ApplyForce(gravity, _bottomBody->GetPosition());

而不是 world = new b2World...等等...难道这不会只在那个 b2Body 上使用重力吗?

最佳答案

只需在每一帧对特定的 b2Body 施加一个力/脉冲。它将模拟重力。

// a procedure called every frame
void Application::on_update_world(double t)
{
m_body_with_custom_gravity->applyForce(CUSTOM_GRAVITY * m_body_with_custom_gravity->getMass());

m_phys_world->Step(t, VEL_ITERATIONS, POS_ITERATIONS);
}

一个与您的问题密切相关的话题: How to apply constant force on a Box2D body?

关于ios - Box2D Gravity 到特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com