LibGdx没有缩放到整个屏幕

时间:2016-12-11 01:49:53

标签: java android ios libgdx

在我的LibGdx游戏中,我使用ExtendedViewport

 new ExtendViewport(LevelSmash.WIDTH, LevelSmash.HEIGHT, camera);

我设置宽度为708,高度为900,

在我的渲染方法中,我将spritebatch缩放到视口的投影

    @Override
public void render(SpriteBatch sb) {

    sb.setProjectionMatrix(vp.getCamera().projection);

    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    sb.begin();
    level.render(sb);
    sb.end();

    stage.act();
    stage.draw();
}

关卡的渲染方法是

    @Override
public void render(SpriteBatch sb) {
    sb.setProjectionMatrix(vp.getCamera().projection);
    sb.draw(background, 0 / LevelSmash.PPM, 0 / LevelSmash.PPM);

    player.draw(sb);
}

PPM等于100

我希望背景能够占据整个屏幕,因为它的宽度和高度我将所有内容缩放到(708,900)

但它看起来像这样

enter image description here

1 个答案:

答案 0 :(得分:2)

您的相机看起来位于0, 0的中心,并且您的纹理开始在0, 0708, 900处绘制。最好将相机的中心设置为图像的中心。

camera.position.set(LevelSmash.WIDTH / 2, LevelSmash.HEIGHT / 2);
camera.update();

修改

我觉得奇怪的是根本就是被绘制的。

sb.draw(background, 0 / LevelSmash.PPM, 0 / LevelSmash.PPM);
// 0 / X == 0 so width and height are always 0;

你能解释一下吗?因为很难相信你看到那条线被吸引了什么。