Java Box2d中的真实物理设置
我想用libgdx和Box2D做一个游戏。 我在寻找“好的”或正确的物理设置时遇到了一些问题 要么物理过程看起来很慢(特别是重力),要么我需要使用极值来对物体施加力,即使这样,效果也很小Java Box2d中的真实物理设置,java,libgdx,box2d,Java,Libgdx,Box2d,我想用libgdx和Box2D做一个游戏。 我在寻找“好的”或正确的物理设置时遇到了一些问题 要么物理过程看起来很慢(特别是重力),要么我需要使用极值来对物体施加力,即使这样,效果也很小 这是我的当前世界和步骤设置: static final float BOX_STEP=1/60f; //World world = new World(new Vector2(0, -9.81f), true); // With the settings my objects seem to be un
这是我的当前世界和步骤设置:
static final float BOX_STEP=1/60f;
//World world = new World(new Vector2(0, -9.81f), true); // With the settings my objects seem to be under water and react very slow
World world = new World(new Vector2(0, -200f), true); //<-- current settings
...
_fixtureDef = new FixtureDef();
_fixtureDef.shape = _shape;
_fixtureDef.density = 2.5f;
_fixtureDef.friction = 1.0f;
_fixtureDef.restitution = 0;
...
对运动员施加跳跃力
@Override
public boolean keyDown(int keycode)
{
if ((keycode == Keys.UP) && (!_pp.isJumping()))
{
_pp.getBody().applyForceToCenter(new Vector2(0, 999000000), true);
// Even with this high value the player barely jumps
_pp.setJumping(true);
}
return false;
}
任何关于如何正确设置物理设置的建议都非常感谢:) 阅读手册并缩放您的世界,否则您将获得大约120px的最大速度/s@noone所以我必须把我的“大”精灵映射到物理身体,这很好。我缩小了我的物理世界,现在看来效果好多了。还有一个问题。我已将重力设置为
-9.81
,将播放器大小设置为5
。在这种设置下,玩家似乎仍然处于水下。将播放器gravityScale
设置为5.0f
时,我可以获得更好的效果。这是好的做法吗?医生说增加重力会降低稳定性。@user1567896让你知道:Box2D的工作单位为1米,所以你的播放器有5米高。5的尺寸意味着你的播放器大约有5米。手册上说,你的体型应该保持在0.1米到10米之间。它仍然在这个范围内,但您应该使它更小。我的球员总是使用1m。最后,这只是为了让它看起来正确。无论你如何做到这一点都不重要。游戏中有很多东西都是假的…谢谢你的回答。我把播放器的尺寸改为1米。然而,我仍然有这个重力问题。将我的播放机的gravityScale
设置为5.0f
好吗?有没有其他方法可以实现更真实的重力?