【问题标题】:How to stop the forces acting on a body in box2d如何在box2d中停止作用在身体上的力
【发布时间】:2011-11-24 12:26:44
【问题描述】:

我在 iphone 上使用 box2d 来创建游戏。我有一个受重力影响的身体向下移动而不是向右或向左移动。它会被另一个物体击中,然后向右或向左移动。然后我有一个重置按钮,可以将身体移回起点。唯一的问题是它仍在向右或向左移动。我怎样才能抵消球已经在移动的力?重置游戏时如何消除这种左右移动?

【问题讨论】:

    标签: iphone xcode cocos2d-iphone box2d physics-engine


    【解决方案1】:

    Box2d 自动清除每个模拟步骤的力。我认为你只是在重置时改变了身体的位置,而不是它的速度。将此代码添加到您的重置方法中:

    body->SetLinearVelocity(b2Vec2(0,0));
    body->SetAngularVelocity(0);
    

    【讨论】:

    • 我试过这种方式,但是当两个对象彼此靠近时不起作用stackoverflow.com/questions/39716111/…
    • @TomSawyer:它们可能会在您重置速度后发生碰撞,从而导致它们的速度再次发生变化
    • 我认为重置速度会使一个物体静止不动。不可能与对方发生碰撞。无论如何要确保一个对象已停止?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多