我在libgdx上写了一个游戏。一切都很好,除了一件事:
当玩家输掉时,“Game Over”纹理会显示在屏幕上。我想在游戏中添加一个“重启屏幕重启”功能,但要做到这一点,我需要将一个eventListener附加到整个纹理。
这可能吗?如果没有,我该怎么办?
编辑:
这是我的纹理声明和使用:
声明:
private final Texture gameOver;
create()方法:
gameOver = new Texture(Gdx.files.internal("data/pali/BROKE.png"));
gameOver.setFilter(TextureFilter.Linear, TextureFilter.Linear);
render()方法:
//rest of the method ommited for clarity
spriteBatch.draw(gameOver, 0, 0);
答案 0 :(得分:2)
这实际上比我想象的要容易。我只需要在类中实现InputProcessor并生成缺少的方法。之后我在我的班级里面有az InputListener,所以我可以在整个屏幕上听到事件。
public class GameScreen implements Screen, InputProcessor {
// ...
// rest of the class ommited for clarity
@Override
public boolean keyDown(int keycode) {
return false;
}
@Override
public boolean keyUp(int keycode) {
return false;
}
@Override
public boolean keyTyped(char character) {
return false;
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
return true;
}
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
if(gameOver){
clearGame();
}
return true;
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
return false;
}
@Override
public boolean mouseMoved(int screenX, int screenY) {
return false;
}
@Override
public boolean scrolled(int amount) {
return false;
}
// ...
}
答案 1 :(得分:1)
我不是Android开发人员,但您应该能够将监听器连接到整个屏幕以收听点击。 (根据OP的要求作出答复的评论)请参阅OP自己的答案以获得最终解决方案。