Libgdx 缩放背景问题
Libgdx scaling background issue
所以我正在创建一个游戏,我将在其中绘制一个背景,但这个背景不会覆盖整个屏幕,即使我降低 window 尺寸它也不会覆盖整个屏幕 window.这是绘制背景的代码:
Gdx.gl20.glClearColor(0.2F, 0.6F, 1F, 1F);
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
cam.update();
sb.setProjectionMatrix(cam.combined);
sb.begin();
sb.draw(Assets.splash_spr_background, 0, 0);
sb.end();
这是初始化精灵的代码:
public static Texture splash_tex_background;
public static Sprite splash_spr_background;
public static void init()
{
splash_tex_background = new Texture(Gdx.files.internal("Splash Screen/background.png"));
splash_tex_background.setFilter(TextureFilter.Linear, TextureFilter.Linear);
splash_spr_background = new Sprite(splash_tex_background);
}
最后是初始化相机和 spritebatch 东西的代码:
cam = new OrthographicCamera();
cam.setToOrtho(false, 1920, 1080);
sb = new SpriteBatch();
现在我的问题是:为什么这不起作用?我做错了什么?
感谢您的帮助! :)
游戏不需要 1920x1080 分辨率。这显然是矫枉过正。想象一下,拥有较低规格设备的人会玩它。
因此您只需将屏幕设置为与背景相匹配即可:
cam.setToOrtho(false, 1280, 720);
如果您确实需要分辨率,您可以像这样拉伸背景:
background.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge);
所以我正在创建一个游戏,我将在其中绘制一个背景,但这个背景不会覆盖整个屏幕,即使我降低 window 尺寸它也不会覆盖整个屏幕 window.这是绘制背景的代码:
Gdx.gl20.glClearColor(0.2F, 0.6F, 1F, 1F);
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
cam.update();
sb.setProjectionMatrix(cam.combined);
sb.begin();
sb.draw(Assets.splash_spr_background, 0, 0);
sb.end();
这是初始化精灵的代码:
public static Texture splash_tex_background;
public static Sprite splash_spr_background;
public static void init()
{
splash_tex_background = new Texture(Gdx.files.internal("Splash Screen/background.png"));
splash_tex_background.setFilter(TextureFilter.Linear, TextureFilter.Linear);
splash_spr_background = new Sprite(splash_tex_background);
}
最后是初始化相机和 spritebatch 东西的代码:
cam = new OrthographicCamera();
cam.setToOrtho(false, 1920, 1080);
sb = new SpriteBatch();
现在我的问题是:为什么这不起作用?我做错了什么?
感谢您的帮助! :)
游戏不需要 1920x1080 分辨率。这显然是矫枉过正。想象一下,拥有较低规格设备的人会玩它。
因此您只需将屏幕设置为与背景相匹配即可:
cam.setToOrtho(false, 1280, 720);
如果您确实需要分辨率,您可以像这样拉伸背景:
background.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge);