Libgdx и Box2dLights - не могу избавиться от черного фона

Давайте получим код:

public MyScreen implements Screen{
    logo = new Texture(/**/); // loading some images

    // initializing the RayHandler
    rayHandler = new RayHandler(new World(new Vector2(0f,0f), false));
    rayHandler.setShadows(false);
    rayHandler.setCombinedMatrix(stage.getCamera().combined);
}

@Override
public void render(float delta) {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    Gdx.gl.glClearColor(Color.WHITE.r,Color.WHITE.g,Color.WHITE.b,1);

    batch.begin();
    batch.draw(logo,logo_pos.x, logo_pos.y, logo.getWidth(),logo.getHeight());
    batch.end();

    stage.act(delta);
    stage.draw();

    rayHandler.updateAndRender();
}

Когда я раньше работал с LibGDX, я использовал тот же код выше, но с фоновой текстурой. Все было хорошо, когда я отключил тени.

Теперь я хочу использовать не текстуру, а один цвет (белый, как показано выше). Проблема в том, что фон ЧЕРНЫЙ, но! Текстура моего логотипа видна.

Каким-то образом rayHandler применяет черный фон, и я не знаю, делаю ли я что-то неправильно или просто не могу комбинировать Box2dLights с цветом фона. Должен ли я использовать фоновую текстуру с желаемым цветом и установить ее в качестве фона, или для этого есть решение?


person Community    schedule 24.07.2016    source источник
comment
Вы имеете в виду, что при запуске приложения весь экран черный? В этом проблема?   -  person Nahro    schedule 24.07.2016


Ответы (1)


Измените порядок двух вызовов, glClearColor и glClear, следующим образом:

Gdx.gl.glClearColor(Color.WHITE.r, Color.WHITE.g, Color.WHITE.b, 1f); // White
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

В вашем коде экран очищается перед установкой цвета...

person munyul    schedule 24.07.2016