我有两个阶段,一个用于背景图像(使用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);
}
答案 0 :(得分:0)
我认为你应该避免使用具有不同视口的两个阶段。你会遇到更多麻烦。如果你想要一个带登录覆盖的背景图像,你应该只使用scene2d。或者只使用具有相同视口的两个阶段并手动缩放叠加层。
但是你可以使用带有混合的帧缓冲区来重写黑条。