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?

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 .


5

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.