Dado que Table.drawDebug está en desuso en libGDX, ¿qué debo usar en su lugar?

10

Estoy siguiendo el libro "Learning LibGDX Game Development" para hacer un juego simple. Estoy en la sección de creación de menús donde creamos un escenario y lo renderizamos con bordes de depuración.

El libro dice que se use, Table.drawDebug(stage)pero este método estático parece haberse eliminado por Tablecompleto de la clase frameworks .

Estoy importando com.badlogic.gdx.scenes.scene2d.ui.Table; a continuación está mi 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);
}

La última línea Table.drawDebug(stage);tiene el error de compilación."The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

¿Hay una nueva forma de dibujar el escenario en modo de depuración?

Shijima
fuente

Respuestas:

11

Esto ha cambiado una vez más.

El código correcto para el método es actualmente el siguiente, ya que stage.setDebug()aparentemente se ha eliminado (no puedo encontrar la versión que sucedió) y se reemplazó 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);
}

Documentación de la API de Scene2d para la clase Stage .

James Skemp
fuente
5

Encontró la respuesta, en lugar de la Table.drawDebug(stage);llamada estática hay un método de instancia llamado stage.setDebug().

Shijima
fuente
1
Con la versión actual de libGDX, este ya no parece ser el caso, al menos si se cambia en el mismo lugar donde lo ubica ese libro.
James Skemp