У меня проблема: я программирую игру с тайловой картой с помощью 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);
}
Таким образом, у игрока есть максимальная скорость, равная двум. Но когда он падает на землю, он медленнее примерно на полсекунды, потому что он становится быстрее в воздухе. Как я могу это исправить?
И мой второй квест: Когда я прыгаю и снова нажимаю прыжок сразу после того, как ударяю по гору, персонаж не прыгает! Почему и как я могу это исправить?
Надеюсь, вы можете мне помочь, и спасибо заранее!