Можете ли вы получить Android MotionEvents при использовании LibGDX

Я пытаюсь использовать классы android.view.GestureDetector и android.view.ScaleGestureDetector в Android, но они, похоже, отключены LibGDX. Мне нужно специально получить доступ к объектам MotionEvent, которые Android генерирует, когда пользователь касается экрана. Может ли кто-нибудь помочь указать мне правильное направление или подтвердить, действительно ли LibGDX отключает их? Заранее спасибо.


person Scott Kingdon    schedule 08.01.2014    source источник
comment
stackoverflow.com/questions/15177049/. проверьте это, если это поможет   -  person Raghunandan    schedule 08.01.2014
comment
Я проверил предоставленную вами ссылку, и она не помогла, так как мне нужен доступ к объектам Android MotionEvent, которые генерируются, когда пользователь касается экрана.   -  person Scott Kingdon    schedule 08.01.2014


Ответы (1)


В libgdx уже есть абстракция GestureDetector. GestureListener Вы можете использовать вот так:

public class MyGestureListener implements GestureListener {

   @Override
   public boolean touchDown (int x, int y, int pointer) {
      return false;
   }

   @Override
   public boolean tap (int x, int y, int count) {
      return false;
   }

   @Override
   public boolean longPress (int x, int y) {
      return false;
   }

   @Override
   public boolean fling (float velocityX, float velocityY) {
      return false;
   }

   @Override
   public boolean pan (int x, int y, int deltaX, int deltaY) {
      return false;
   }

   @Override
   public boolean zoom (float originalDistance, float currentDistance) {
      return false;
   }

   @Override
   public boolean pinch (Vector2 initialFirstPointer, Vector2 initialSecondPointer, Vector2 firstPointer, Vector2 secondPointer) {
      return false;
   }
}

Не забудьте установить его как InputProcessor

Gdx.input.setInputProcessor(new GestureDetector(new MyGestureListener()));

Ссылка: Обнаружение жестов

В качестве небольшого плюса, если вы найдете что-то специфичное для Android, которое вы хотели бы использовать с libgdx, эта ссылка может вам помочь: Взаимодействие с кодом конкретной платформы

person Lestat    schedule 08.01.2014
comment
Извините, но мне снова нужно получить доступ к объектам Android MotionEvent, поскольку они генерируются, когда пользователь касается экрана. - person Scott Kingdon; 08.01.2014
comment
Вы не можете использовать MotionEvent в Libgdx напрямую, потому что это будет означать, что вы просто разрабатываете для Android. Эти жесты прослушивателя обнаруживают эти события даже на рабочем столе или внутри браузера! Если вы хотите получить их напрямую, посмотрите вики libgdx, как передать вещи Android непосредственно в ядро ​​​​Projekt. (Например, см. руководство по AdMob) github.com/libgdx/libgdx/wiki/ Admob-in-libgdx это правильный ответ, если вы хотите сказать в стиле libgdx. - person BennX; 08.01.2014