【发布时间】:2016-01-24 02:17:40
【问题描述】:
我有一个问题: 我正在用 Box2D 编写一个平铺地图游戏,但问题是,如果我按下例如 D 来让我的角色前进,矢量 2 会让我走得越来越快,所以我这样做了:
if (Gdx.input.isKeyJustPressed(Input.Keys.W) && player.b2body.getLinearVelocity().y == 0)
player.b2body.applyLinearImpulse(new Vector2(0, 4f), player.b2body.getWorldCenter(), true);
if (Gdx.input.isKeyPressed(Input.Keys.D))
player.b2body.applyLinearImpulse(new Vector2(0.1f, 0), player.b2body.getWorldCenter(), true);
if (Gdx.input.isKeyPressed(Input.Keys.A))
player.b2body.applyLinearImpulse(new Vector2(-0.1f, 0), player.b2body.getWorldCenter(), true);
if (player.b2body.getLinearVelocity().x > 2) {
player.b2body.setLinearVelocity(2, player.b2body.getLinearVelocity().y);
}
else if (player.b2body.getLinearVelocity().x < -2) {
player.b2body.setLinearVelocity(-2, player.b2body.getLinearVelocity().y);
}
所以玩家的最大速度为 2。 但是当他撞到地面时,他会慢半秒左右,因为他在空中变得更快。我该如何解决?
我的第二个任务是: 当我在击中地面后立即跳跃并再次按下跳跃时,角色不会跳跃! 为什么以及如何解决这个问题?
希望您能帮助我并提前致谢!
【问题讨论】:
-
我想知道您的问题是否已解决,如果是,请您通过选择正确答案将您的问题转为已解决,谢谢