java - LibGDX:在单独的类中创建 GestureListener

标签 java android libgdx

<分区>

我目前有一个类可以处理我想要的所有手势,它看起来像这样:

public class InputHandler  implements GestureDetector.GestureListener{

  private Player myPlayer;

  public InputHandler(Player player){
    myPlayer = player;
  }

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

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

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

  @Override
  public boolean fling(float velocityX, float velocityY, int button) {
    if(velocityY > 0){
      myPlayer.onSwipeUp();
    }
    return false;
  }

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

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

  @Override
  public boolean zoom(float initialDistance, float distance) {
    return false;
  }

  @Override
  public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) {
    return false;
  }

  @Override
  public void pinchStop() {

  }
}

如您所见,我使用的唯一方法是“fling”方法,但我想在我的“MainScreen”类中创建手势监听器,因为它包含对“myPlayer”的引用,我想将其传递进入这个类,但我不确定如何创建监听器。到目前为止,我的构造函数中有这个:

public class GameScreen implements Screen {

  private GameWorld world;
  private GameRenderer renderer;
  GestureDetector gd;


  public GameScreen(){
    float screenWidth = Gdx.graphics.getHeight();
    float screenHeight = Gdx.graphics.getWidth();
    float gameWidth = 816;
    float gameHeight = screenHeight/(screenWidth/gameWidth);

    int midpointY = (int)(gameHeight/2);

    world = new GameWorld(midpointY);
    renderer = new GameRenderer(world);

    gd = new GestureDetector(new myGestureListener(world.getPlayer())); //Error here, 'myGestureListener' cannot be resolved
    Gdx.input.setInputProcessor(gd);



  }

我知道“myGestureListener”从未创建过,因此无法解决,但我对如何修复此错误同时确保正确传递引用感到困惑。如果我需要初始化一个 GestureListener,我该怎么做?

如果这个问题没有意义或没有解决方案,我提前道歉,我对使用 libGDX 框架进行编码仍然是新手。

最佳答案

您没有名为 myGestureListener 的类吗?

从你的问题来看,你似乎称它为 InputHandler,所以你可能使用了错误的名称。

关于java - LibGDX:在单独的类中创建 GestureListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562269/

相关文章:

Raspberry pi 上的 JavaFx 集成

java - 参数分配未按预期工作

android - "ActionBarDrawerToggle"什么时候显示它的 "openDrawerContentDescRes"和 "closeDrawerContentDescRes"字符串?

android - 有没有办法存储信用卡/借记卡详细信息以供将来使用使用 Braintree Android SDK

LibGDX:场景 2D 表,是否可以重叠两个 Actor ,如图像和标签?

java - libGDX - 如何加速场景?

java - .hasNext() 上的无限循环

java - Flume:来自下游的意外异常。 java.io.IOException:对等重置连接

java - 传感器更改不会触发 onSensorChanged

java - 如何在运行时缩放 libGDX 中的粒子效果?