Como Table.drawDebug foi descontinuado no libGDX, o que devo usar?

10

Estou seguindo o livro "Learning LibGDX Game Development" para criar um jogo simples. Estou na seção de criação de menus, onde criamos um estágio e o renderizamos com bordas de depuração.

O livro diz para usar, Table.drawDebug(stage)mas esse método estático parece ter sido completamente removido da Tableclasse de frameworks .

Estou importando com.badlogic.gdx.scenes.scene2d.ui.Table; abaixo está o meu código:

@Override
public void render(float deltaTime) {
    Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    if (debugEnabled) {
        debugRebuildStage -= deltaTime;
        if (debugRebuildStage <= 0) {
            debugRebuildStage = DEBUG_REBUILD_INTERVAL;
            rebuildStage();
        }
    }
    stage.act(deltaTime);
    stage.draw();

    Table.drawDebug(stage);
}

A última linha, Table.drawDebug(stage);tem o erro de compilação"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

Existe uma nova maneira de desenhar o palco no modo de depuração?

Shijima
fonte

Respostas:

11

Isso mudou mais uma vez.

O código correto para o método é atualmente o seguinte, como stage.setDebug()aparentemente foi removido (não é possível encontrar a versão que aconteceu) e substituído por stage.setDebugAll(true);:

@Override
public void render(float deltaTime) {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    if (debugEnabled) {
        debugRebuildStage -= deltaTime;
        if (debugRebuildStage <= 0) {
            debugRebuildStage = DEBUG_REBUILD_INTERVAL;
            rebuildStage();
        }
    }
    stage.act(deltaTime);
    stage.draw();
    stage.setDebugAll(true);
}

Documentação da API Scene2d para a classe Stage .

James Skemp
fonte
5

Encontrada a resposta, em vez da Table.drawDebug(stage);chamada estática, existe um método de instância chamado stage.setDebug().

Shijima
fonte
1
Com a versão atual do libGDX, isso parece não ser mais o caso, pelo menos se for trocado no mesmo local em que o livro o coloca.
James Skemp