libgdx - box2d速度和力不起作用

时间:2013-05-15 13:52:45

标签: java libgdx box2d

我有一个非常简单的使用Box2d的LibGDX游戏。现在,它只是一艘在地图上移动的船。如果我使用body.setTransform()方法改变船的位置,我可以使用键盘控制来移动船,但这显然没有利用Box2d的功能。我想使用applyForce()方法控制玩家船只,但由于某种原因,无论我设置力量有多高或多低,该方法都不会做任何事情。我也尝试了applyLinearImpulse()setLinearVelocity(),两者都有同样的效果:没有。我通过测井确认我的船速实际上保持在0.0的恒定值而不仅仅是微不足道的变化。

以下是游戏循环和实体的相关内容:

http://pastebin.com/bsA4fVPn

有问题的部分:

public void update(){
            this.applyIntendedMovement();
    }

    public void applyIntendedMovement(){
            if(this.isMovingUp){
                    this.body.applyForceToCenter(new Vector2(0,100).scl(this.SPEED_FACTOR), true);
            }
    }

为什么呼叫applyForce()什么都不做?此外,我在创建我的Player体时明确设置了密度,但是当我在任何给定时刻检查玩家的质量时,它是0.0。我知道这两个问题很有可能是相关的,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

唉,我觉得很蠢。我意识到在我已经创建了主体后,我正在将bodyDef设置为Dynamic 。我只是重新安排了一些代码行,它确实有效。对不起,伙计们。