gpt4 book ai didi

java - libgdx - box2d 速度和力不起作用

转载 作者:行者123 更新时间:2023-12-01 04:40:54 24 4
gpt4 key购买 nike

我有一个非常简单的 LibGDX 游戏,它使用 Box2d。现在,它只是一艘在 map 上移动的船。如果我使用 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() 没有执行任何操作?另外,我在创建玩家 body 时明确设置了密度,但当我在任何给定时刻检查玩家的质量时,它都是 0.0。我知道这两个问题很可能是相关的,但我不知道该怎么办。

最佳答案

哎呀,我觉得自己好蠢。我意识到在创建主体之后我将 bodyDef 设置为动态。我只是重新排列了几行代码,它就可以工作了。抱歉各位。

关于java - libgdx - box2d 速度和力不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16566954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com