2016-07-02 3 views
1

У меня проблема, когда я иду, чтобы переместить мой спрайт, он останавливается, и мне нужно снова нажать, чтобы спрайт снова переместился.Libgdx Sprite не двигается плавно

То, что я хочу, - это когда пользователь держит свой вход вниз, символ продолжает двигаться в введенном направлении, вместо того, что происходит в тот момент, когда вход заставит персонажа двигаться немного, и нужно оттянуть и вставить палец еще раз. Я приложил нижеследующее, чтобы попытаться помочь объяснить.

Что сейчас происходит:

enter image description here

И что я хочу:

enter image description here

Мой код, как показано ниже, пожалуйста, сообщите о том, почему это происходит, и если возможно, то, что я необходимо изменить

@Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 


     if (Gdx.input.isTouched()) { 

      player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 

      } 

     } 
      return true; 
      } 

В качестве примера также simlar коды, которые работают здесь: https://github.com/BrentAureli/SuperMario/blob/master/core/src/com/brentaureli/mariobros/Screens/PlayScreen.java

ответ

1

Я не совсем уверен, но я думаю, ваша проблема в том, что вы вызываете этот код из метода touchDown. Я думаю, что этот метод вызывается только один раз, когда происходит щелчок/клик. Для вашего желаемого результата, перенесите код

if (Gdx.input.isTouched()) { 

      player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 

      } 

     } 

в игровой петли/render метод

+0

Хороший улов! Спасибо друг. – Phil3992

Смежные вопросы