Was sollte ich stattdessen verwenden, da Table.drawDebug in libGDX veraltet ist?

10

Ich folge dem Buch "Learning LibGDX Game Development", um ein einfaches Spiel zu erstellen. Ich bin im Menüerstellungsbereich, wo wir eine Bühne erstellen und sie mit Debug-Rändern rendern.

Das Buch sagt zu verwenden, Table.drawDebug(stage)aber diese statische Methode scheint Tablevollständig aus der Frameworks- Klasse entfernt worden zu sein .

Ich importiere com.badlogic.gdx.scenes.scene2d.ui.Table; Unten ist mein Code:

@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);
}

Die letzte Zeile Table.drawDebug(stage);enthält den Kompilierungsfehler"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

Gibt es eine neue Möglichkeit, die Bühne im Debug-Modus zu zeichnen?

Shijima
quelle

Antworten:

11

Das hat sich noch einmal geändert.

Der richtige Code für die Methode lautet derzeit wie folgt: Er stage.setDebug()wurde anscheinend entfernt (kann nicht finden, welche Version passiert ist) und ersetzt durch 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);
}

Scene2d-API-Dokumentation für die Stage-Klasse .

James Skemp
quelle
5

Die Antwort gefunden, anstelle des statischen Table.drawDebug(stage);Aufrufs wird eine Instanzmethode aufgerufen stage.setDebug().

Shijima
quelle
1
Mit der aktuellen Version von libGDX scheint dies nicht mehr der Fall zu sein, zumindest wenn dies an der Stelle ausgetauscht wird, an der es in diesem Buch abgelegt ist.
James Skemp