เนื่องจาก Table.drawDebug เลิกใช้แล้วใน libGDX ฉันควรใช้อะไรแทน


10

ฉันกำลังติดตามหนังสือ "Learning LibGDX Game Development" เพื่อสร้างเกมอย่างง่าย ฉันอยู่ในส่วนการสร้างเมนูที่เราสร้างสเตจและแสดงผลด้วยเส้นขอบการดีบัก

หนังสือเล่มนี้บอกว่าจะใช้Table.drawDebug(stage)แต่วิธีการแบบคงที่นี้ดูเหมือนว่าจะถูกลบออกจากTableชั้นเรียนกรอบทั้งหมด

ฉันกำลังนำเข้าcom.badlogic.gdx.scenes.scene2d.ui.Table; ด้านล่างคือรหัสของฉัน:

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

บรรทัดสุดท้ายTable.drawDebug(stage);มีข้อผิดพลาดในการรวบรวม"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)"

มีวิธีใหม่ในการวาดสเตจในโหมดดีบักหรือไม่

คำตอบ:


11

สิ่งนี้มีการเปลี่ยนแปลงอีกครั้ง

รหัสที่ถูกต้องสำหรับวิธีการในปัจจุบันมีดังต่อไปนี้ตามที่stage.setDebug()ดูเหมือนว่าถูกลบออก (ไม่สามารถหารุ่นที่เกิดขึ้น) และแทนที่ด้วย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);
}

เอกสาร API Scene2d สำหรับคลาส


5

พบคำตอบแทนที่จะคงโทรมีวิธีการที่เรียกว่าอินสแตนซ์Table.drawDebug(stage);stage.setDebug()


1
ด้วยเวอร์ชันปัจจุบันของ libGDX สิ่งนี้ดูเหมือนจะไม่เป็นเช่นนั้นอีกต่อไปอย่างน้อยก็หากมีการสลับตำแหน่งนี้ในที่เดียวกับที่หนังสือเล่มนั้นวางไว้
James Skemp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.