1

libgdx でゲームを作成しました。1 つのことを除いて、すべて正常に動作します。

プレーヤーが負けると、「ゲーム オーバー」のテクスチャが画面に表示されます。ゲームに「画面をタップして再起動」機能を追加したいのですが、そのためにはテクスチャ全体に 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);
4

2 に答える 2

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;
    }
// ...
}
于 2013-09-18T20:24:27.013 に答える
1

私は Android 開発者ではありませんが、画面全体にリスナーをアタッチしてタップを聞くことができるはずです。(OPの要求に応じてコメントが回答として作成されました)最終的な解決策については、OP自身の回答を参照してください。

于 2013-09-18T20:27:34.887 に答える