如何从 imputProcessor class 绘制纹理? LibGDX

How to draw texture from imputProcessor class? LibGDX

我尝试使用 LibGDX 的 InputProcessor class 来绘制东西。但是什么也没画!我可以从任何其他地方绘制纹理而不是 render () class in LibGDX?

是的,如果我在 render () class 中绘制它就可以绘制,但是我可以从其他地方绘制吗,比如 InputProcessor touchDragged?

这是我的代码

public class mm_imput implements InputProcessor {

 SpriteBatch batch=new SpriteBatch();
 Texture pixel=new Texture("something.png");

   @Override
   public boolean touchDragged (int x, int y, int pointer) {

      drawSomething();

   }
   void drawSomething() {
        batch.begin();
        batch.draw(pixel, 100, 100, 100, 100);
        batch.end();
    }

}

每次拖动鼠标应该会显示一些东西..如何实现?

您的批处理必须在屏幕的渲染方法中 class。

在这里link你会明白我在说什么:https://github.com/littletinman/Hype/blob/master/Hype/core/src/com/philiproyer/hype/screens/Details.java

我有一个主屏幕 class,带有渲染方法。我正在实现 InputProcessor 接口。

我推荐的是让 Render 方法处于触摸按下的状态。

public void render(float delta) {

    Gdx.gl.glClearColor( 0, 0, 0, 1); // Clear the screen with a solid color
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    if(isTouching == true) { // check for touching
      batch.begin();
        batch.draw(pixel, 100, 100, 100, 100);
      batch.end();
    }
}

然后,在 touchDown 方法中添加如下内容

public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    isTouching = true; // Set boolean to true
    return false;
}

要确保在您停止触摸时重置它,请在您的 touchUp 方法中执行以下操作

public boolean touchUp(int screenX, int screenY, int pointer, int button) {
    isTouching = false; // Set boolean to false
    return false;
}

如果有任何不清楚的地方,请告诉我。祝你好运!