根据观察的方向向前移动 Body

Move Body forward depending the direction is looking

我正在使用 GDX 和 Box2D 制作 space 射击水平卷轴类游戏。我无法弄清楚子弹是如何向前移动的,具体取决于所看的方向。例如,如果子弹向右看,我使用 applyLinearImpulse,但如果子弹向上看,它就不起作用,它会一直向右移动。

这是项目符号的代码object

        BodyDef bd = new BodyDef();
    bd.bullet = true;
    bd.fixedRotation = true;
    bd.position.set(v);
    bd.type = BodyType.KinematicBody;
    bd.fixedRotation = true;

    CircleShape circle = new CircleShape();
    circle.setRadius(SIZE);

    FixtureDef fd = new FixtureDef();
    fd.shape = circle;
    fd.isSensor = true;

    World world = Game.level.getWorld();

    body = world.createBody(bd);
    @SuppressWarnings("unused")
    Fixture fixture = body.createFixture(fd);

    body.setTransform(body.getPosition(), magnitude);
    body.setLinearVelocity(SPEED, 0);

    circle.dispose();

如果子弹已经向右移动,而您想让它向上移动,请尝试 SetVelocity。它会直接改变它的速度,而不是 ApplyImpulse,它试图让它看起来逼真。