我想要显示一张图片,然后等待获取输入(我的意思是触摸),然后检查它与图片的位置。批量必须保持警惕我的输入。但我不知道我必须在哪里比较,输入和pic的位置。或者我必须如何使用等待,以获得触摸输入的延迟。 例如,我使用此代码。但它只是显示黑屏...
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();
}
}
}
}
或在show pic中使用等待创建延迟。
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。抱歉我的语言不好。
答案 0 :(得分:2)
您无需等待输入。主应用程序线程为您轮询输入事件。例如,如果按下鼠标按钮,则轮询此事件,您可以检查当前是否在render()方法中按下鼠标左键并采取相应措施。例如:
public void render() {
...
if(Gdx.input.isButtonPressed(Buttons.LEFT)) {
//move sprite left
}
}
但是我认为更好的方法是使用InputProcessor。实现InputProcessor并注册它:
Gdx.input.setInputProcessor(yourInputProcessor);
在这种情况下,主应用程序线程处理轮询事件,并调用InputProcessor的回调方法。
请参阅: