在我的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)
但它看起来像这样
答案 0 :(得分:2)
您的相机看起来位于0, 0
的中心,并且您的纹理开始在0, 0
到708, 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;
你能解释一下吗?因为很难相信你看到那条线被吸引了什么。