两个阶段具有不同的视口,如何删除它们之间的黑条

时间:2015-06-18 04:38:34

标签: libgdx

我有两个阶段,一个用于背景图像(使用FillViewport来拉伸图像) 另一个使用Fitviewport来显示游戏对象。 如何删除黑条以显示第一阶段的背景? 我尝试了第二阶段的Extendviewport,但它会显示1280x720设备右侧的间隙(我怎么能将间隙分成左边?)

public LoginScreen(final MyGame gam) {
        game = gam;

        stageBG = new Stage(new FillViewport(800, 480));
        textureBackground = new Texture(Gdx.files.internal("background.png"));
        stageBG.addActor(new Image(textureBackground));

        stage = new Stage(new ExtendViewport(640, 480, 1280, 720));
        table = new Table();

        textureLoginArea = new Texture(Gdx.files.internal("login-area.png"));
        textureGirlGreen = new Texture(Gdx.files.internal("girl-green.png"));

        Gdx.input.setInputProcessor(stage);

        table.setBounds(415, 15, 374, 459);
        table.setBackground(new TextureRegionDrawable(new TextureRegion(textureLoginArea)));

        stage.addActor(table);
    }
@Override
    public void render(float v) {
        stageBG.act(Gdx.graphics.getDeltaTime());
        stageBG.draw();

        stage.act(Gdx.graphics.getDeltaTime());

        stage.getBatch().begin();
        stage.getBatch().draw(textureGirlGreen, 120, 0);
        stage.getBatch().end();

        stage.draw();
    }

    @Override
    public void resize(int width, int height) {
        stageBG.getViewport().update(width, height, true);
        stage.getViewport().update(width, height, true);
    }

1 个答案:

答案 0 :(得分:0)

我认为你应该避免使用具有不同视口的两个阶段。你会遇到更多麻烦。如果你想要一个带登录覆盖的背景图像,你应该只使用scene2d。或者只使用具有相同视口的两个阶段并手动缩放叠加层。

但是你可以使用带有混合的帧缓冲区来重写黑条。