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