【问题标题】:Can you get the Android MotionEvents while using LibGDX你能在使用 LibGDX 时获得 Android MotionEvents
【发布时间】:2014-01-08 03:45:08
【问题描述】:

我想做的是在 Android 中使用 android.view.GestureDetector 和 android.view.ScaleGestureDetector 类,但它们似乎被 LibGDX 禁用。我需要专门访问用户触摸屏幕时 Android 生成的 MotionEvent 对象。谁能帮我指出正确的方向或确认 LibGDX 是否确实禁用了它们?提前致谢。

【问题讨论】:

  • stackoverflow.com/questions/15177049/…。看看这个是否有帮助
  • 我查看了您提供的链接,但没有帮助,因为我需要访问用户触摸屏幕时生成的 Android MotionEvent 对象。

标签: android libgdx motionevent


【解决方案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()));

参考:Gesture Detection

另外,如果您发现某些特定于 Android 的东西希望与 libgdx 一起使用,此链接可能会对您有所帮助:Interfacing with Platform Specific Code

【讨论】:

  • 抱歉,我需要再次访问 Android MotionEvent 对象,因为它们是在用户触摸屏幕时生成的。
  • 您不能直接在 Libgdx 中使用 MotionEvent,因为那意味着您只是为 android 开发。即使在桌面或浏览器内部,那些手势监听器也会检测到这些事件!如果您想直接获取这些内容,请参阅 libgdx wiki 如何将 android 内容直接传递给核心 Projekt。 (例如,请参阅 AdMob 教程)github.com/libgdx/libgdx/wiki/Admob-in-libgdx 如果您想在 libgdx 中说“方式”,这是正确的答案。
猜你喜欢
  • 2011-10-07
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多