libGDX에서는 Table.drawDebug가 더 이상 사용되지 않으므로 대신 무엇을 사용해야합니까?


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

스테이지 클래스 Scene2d API 문서 .


5

정적 Table.drawDebug(stage);호출 대신 이라는 인스턴스 메소드가 stage.setDebug()있습니다.


1
libGDX의 현재 버전에서는 적어도 해당 책이있는 곳과 같은 장소에서 교체 된 경우 더 이상 그렇지 않은 것으로 보입니다.
James Skemp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.