0

我想显示一张图片,然后等待获取输入(我的意思是触摸),然后检查图片的位置。批次必须对我的输入保持警惕。但我不知道我必须在哪里比较、输入和图片的位置。或者我必须如何使用等待来为获取触摸输入创建延迟。例如,我使用此代码。但它只是显示黑屏...

public void render() {
    x = rand.nextFloat() * 1024;
    y = rand.nextFloat() * 700;
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    batch.begin();
    batch.draw(texture, x, y);
    if (Gdx.input.justTouched()) {
        if (Gdx.input.getX() > x && Gdx.input.getX() < texture.getWidth() + x) {
            if (Gdx.input.getY() > y && Gdx.input.getY() < texture.getHeight() + y) {
                batch.end();
            }
        }
    }
}

或在显示图片中使用等待创建延迟。

public void render() {
    x = rand.nextFloat() * 1024;
    y = rand.nextFloat() * 700;
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    batch.begin();
    batch.draw(texture, x, y);
    try {
        batch.wait();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    batch.end();
}

我刚开始gdx和android。对不起我的语言不好。

4

1 回答 1

2

您不必等待输入。主应用程序线程为您轮询输入事件。例如,如果按下鼠标按钮,则轮询此事件,您可以在 render() 方法中检查当前是否按下鼠标左键并采取相应措施。例如:

public void render() {
  ...
  if(Gdx.input.isButtonPressed(Buttons.LEFT)) {
      //move sprite left
  }
}

但是我认为更好的方法是使用 InputProcessor。实现 InputProcessor 并注册它:

Gdx.input.setInputProcessor(yourInputProcessor);

在这种情况下,主应用程序线程处理轮询事件,并调用 InputProcessor 的回调方法。

看:

于 2012-01-25T17:44:08.367 回答