根据方向看向前移动身体

时间:2015-09-27 13:40:10

标签: java libgdx box2d

我正在用GDX和Box2D制作太空射击水平滚动式游戏。我无法弄清楚子弹如何向前移动,这取决于朝哪个方向看。例如,如果子弹向右看,我使用applyLinearImpulse,但如果子弹向上看,它就不起作用,它会一直向右移动。

以下是项目符号对象的代码

        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();

1 个答案:

答案 0 :(得分:0)

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