【问题标题】:How to deactivate translation on collision?如何在碰撞时停用翻译?
【发布时间】:2014-07-27 17:04:56
【问题描述】:

我想做什么

我想让我的玩家/角色与刚体同时移动。
当我的角色与另一个 RB 碰撞时,other rb 会移动 - 但我的角色不会。

我想知道的

是否可以在碰撞时停用特定刚体的平移?如果是,怎么做?

【问题讨论】:

  • 这是一个有点模棱两可的问题。你想通过与刚体同步来移动你的角色吗?因此,您希望您的角色在视觉上推动场景中的其他身体?

标签: bullet jbullet


【解决方案1】:

处于运动学状态的刚体不会因碰撞而移动。无论如何,它们仍然会发生碰撞,因此其他物体会在碰撞中移动。

您可以如下设置运动状态:

body.setCollisionFlags(body.getCollisionFlags() | CollisionFlags.CF_KINEMATIC_OBJECT); 

但请记住,您的身体不会被您世界中的任何物理运动所移动,您必须通过 MotionState 手动设置它的位置。

(或者如果你想通过附加力来移动玩家,你可以尝试通过为玩家设置一个非常高的质量并使用相应的力来移动以尽量减少对玩家的影响。我不知道任何干净的解决方案。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多