LibGDX Box2D Предотвратить замедление объекта после прыжка - PullRequest
0 голосов
/ 10 ноября 2018

Я кодирую 2d-платформер в libGDX с Box2D, и я только что понял, что если ваш объект прыгает во время работы, а затем приземляется на поверхность, чтобы продолжить работу, он замедляется примерно на 120% примерно на секунду. Это действительно раздражает, и я не могу придумать решение. Я пытался повысить скорость в течение секунды после того, как игрок упал на землю после прыжка, но, похоже, это не помогло. Вот что я использую для перемещения игрока:

    //jumping
    if(Gdx.input.isKeyJustPressed(Keys.SPACE) && player.b2body.getLinearVelocity().y == 0){
        player.b2body.applyLinearImpulse(new Vector2(0, 4.2f), player.b2body.getWorldCenter(), true);
    }

    //moving right
    if(Gdx.input.isKeyPressed(Keys.D) && player.b2body.getLinearVelocity().x <= 2){
        player.b2body.applyLinearImpulse(new Vector2(0.17f, 0), player.b2body.getWorldCenter(), true);
    }

    //moving left
    if(Gdx.input.isKeyPressed(Keys.A) && player.b2body.getLinearVelocity().x >= -2){
        player.b2body.applyLinearImpulse(new Vector2(-0.17f, 0), player.b2body.getWorldCenter(), true);
    }

Здесь - это видео, показывающее, что происходит.

Я надеюсь, что предоставил правильную информацию, пожалуйста, скажите мне, если я этого не сделал.

РЕДАКТИРОВАТЬ: я также пытался установить положение на оси х с помощью

    player.b2body.setLinearVelocity(1f, 0);

но это, кажется, заставляет игрока летать вправо.

...