【问题标题】:Add inputListener to texture将 inputListener 添加到纹理
【发布时间】:2013-09-18 19:43:57
【问题描述】:

我在 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);

【问题讨论】:

  • 纹理是组件吗?
  • 我不太确定组件是什么。我用我使用的代码编辑了问题。
  • 你不能只捕获整个屏幕的鼠标/点击事件吗? (我不做android开发,只做Java)
  • 我不确定。如果我是对的,您首先需要将事件处理程序附加到要捕获的事件的对象上,但我不确定如何将其附加到纹理。
  • 纹理背后是否有可以附加事件处理程序的东西?我的猜测是,如果纹理无法捕捉到事件,那么事件可能会像不存在一样发生

标签: java android input libgdx


【解决方案1】:

这实际上比我想象的要容易。我只需要在类中实现 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;
    }
// ...
}

【讨论】:

  • 也许发布对你有用的代码,以防其他人来寻找同样的问题:)
【解决方案2】:

我不是安卓开发者,但你应该能够在整个屏幕上附加一个监听器来监听点击。 (根据 OP 的要求作为答案发表评论)请参阅 OP 自己的答案以获得最终解决方案。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2016-01-24
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多