Dato che Table.drawDebug è obsoleto in libGDX, cosa dovrei usare invece?


10

Sto seguendo il libro "Learning LibGDX Game Development" per creare un gioco semplice. Sono nella sezione di creazione del menu in cui creiamo uno stage e lo rendiamo con bordi di debug.

Il libro dice di usare Table.drawDebug(stage)ma questo metodo statico sembra essere stato completamente rimosso dalla Tableclasse frameworks .

Sto importando com.badlogic.gdx.scenes.scene2d.ui.Table; sotto è il mio codice:

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

L'ultima riga Table.drawDebug(stage);presenta l'errore di compilazione"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

Esiste un nuovo modo per disegnare il palco in modalità debug?

Risposte:


11

Questo è cambiato di nuovo.

Il codice corretto per il metodo è attualmente il seguente, come stage.setDebug()apparentemente è stato rimosso (non riesco a trovare quale versione è avvenuta) e sostituito con 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);
}

Documentazione API di Scene2d per la classe Stage .


5

Trovato la risposta, invece della Table.drawDebug(stage);chiamata statica c'è un metodo di istanza chiamato stage.setDebug().


1
Con la versione corrente di libGDX, questo sembra non essere più il caso, almeno se questo viene scambiato nello stesso posto in cui lo inserisce quel libro.
James Skemp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.