java - setLinearVelocity() 没有按预期工作

标签 java box2d jbox2d

我一直在摆弄 jbox2d,当物体的 x 速度受到世界引力的影响时,我感到很惊讶。这是我的代码:

    //create world
    Vec2 gravity = new Vec2(0, 1);
    boolean sleep = true;
    world = new World(gravity, sleep);
    //create wheel
    BodyDef wheelBodyDef = new BodyDef();
    wheelBodyDef.type = BodyType.DYNAMIC;
    wheelBody = world.createBody(wheelBodyDef);
    CircleShape circleShape = new CircleShape();
    FixtureDef wheelFixtureDef = new FixtureDef();
    wheelFixtureDef.shape = circleShape;
    Fixture wheelFixture = wheelBody.createFixture(wheelFixtureDef);
    wheelBody.setLinearVelocity(new Vec2(50, 0));

只有在我每帧应用它或禁用重力时,线速度才会产生显着差异。任何人都可以找出我做错了什么吗?

最佳答案

Box2d 不支持零重力模拟;这就是为什么禁用重力时看不到任何区别的原因。此外,您可能看不出什么区别,因为 (0, 1) 的引力非常弱;试试 (0, 10)

setLinearVelocity 也是一个 rayCast 函数。您可能正在寻找 applyForce()

关于java - setLinearVelocity() 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150995/

相关文章:

java - String.replaceFirst 不适用于带有 $ 符号的参数

java - 在 XML 中显示 Java 的设备名称 (Android Studio)

java - libgdx - 实现移动运动学体

java - 将接口(interface)方法委托(delegate)给各种类

忽略重音符号的 Java 字符串搜索 - 第二部分

java - 表达式执行 Spring 方面

ios - 如何计算b2body对象的行进距离

c++ - 如何在 Box2D 中创建橡胶线?

maven - 使用 Intellij + Maven 导入库 : Cannot resolve symbol

android - Box2d 碰撞断言错误