Étant donné que Table.drawDebug est obsolète dans libGDX, que dois-je utiliser à la place?

10

Je suis le livre "Learning LibGDX Game Development" pour faire un jeu simple. Je suis dans la section de création de menu où nous créons une scène et la rendons avec des bordures de débogage.

Le livre dit d'utiliser Table.drawDebug(stage)mais cette méthode statique semble avoir été Tableentièrement supprimée de la classe des frameworks .

J'importe com.badlogic.gdx.scenes.scene2d.ui.Table; ci-dessous est mon 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);
}

La dernière ligne Table.drawDebug(stage);contient l'erreur de compilation"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

Existe-t-il une nouvelle façon de dessiner la scène en mode débogage?

Shijima
la source

Réponses:

11

Cela a encore changé.

Le code correct pour la méthode est actuellement le suivant, comme stage.setDebug()il semble avoir été supprimé (impossible de trouver la version qui s'est produite) et remplacé par 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);
}

Documentation de l'API Scene2d pour la classe Stage .

James Skemp
la source
5

Trouvé la réponse, au lieu de l' Table.drawDebug(stage);appel statique, il existe une méthode d'instance appelée stage.setDebug().

Shijima
la source
1
Avec la version actuelle de libGDX, cela ne semble plus être le cas, du moins si cela est échangé au même endroit que celui où le livre le place.
James Skemp