由于libGDX中不推荐使用Table.drawDebug,因此应该使用什么呢?


10

我正在按照“学习LibGDX游戏开发”一书来制作一个简单的游戏。我在菜单创建部分中,在其中创建一个舞台并使用调试边框对其进行渲染。

这本书说要使用,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)"

有没有一种新方法可以在调试模式下绘制阶段?

Answers:


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

Stage类的Scene2d API文档


5

找到了答案,而不是静态Table.drawDebug(stage);调用,而是有一个称为的实例方法stage.setDebug()


1
在当前版本的libGDX中,似乎不再存在这种情况,至少在与该书放置位置相同的位置被替换掉了。
James Skemp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.