libgdx ios 横向不是全屏
libgdx ios landscape not fullscreen
我的应用程序有问题。在 iPhone 上(在 5c、5s、6 上测试)我的两边都有两条黑色条纹(在 android 上看起来一切正常)。
我该如何处理它们?
这是我的绘图代码
@Override
public void create () {
mWidth = Gdx.graphics.getWidth();
mHeight = Gdx.graphics.getHeight();
mScale = Math.max(mWidth, mHeight) / 20f;
backgroundTexture = new Texture(Gdx.files.internal("backBlue.png"));
ShaderProgram.pedantic = false;
backgroundShader = new ShaderProgram(VERT, FRAG);
if (!backgroundShader.isCompiled()) {
System.err.println(backgroundShader.getLog());
System.exit(0);
}
if (backgroundShader.getLog().length()!=0)
System.out.println(backgroundShader.getLog());
backgroundBatch = new SpriteBatch(5, backgroundShader);
}
@Override
public void render () {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
backgroundBatch.begin();
backgroundBatch.draw(backgroundTexture, 0, 0, mWidth, mHeight);
backgroundBatch.end();
...
}
@Override
public void resize (int width, int height) {
mWidth = width;
mHeight = height;
mScale = Math.max(width, height) / 20f;
backgroundShader.begin();
backgroundShader.setUniformf("resolution", width, height);
backgroundShader.end();
}
这可能是因为您正在使用的 viewport
,它通常在构造函数或 create
方法中设置。
什么是viewport
?
基本上,viewport
是一个创建的对象,用于定义游戏在不同屏幕上的绘制方式。例如,假设您的相机设置为 480 x 800(像素)。如果您的游戏 运行 在不同比例的屏幕上显示,例如 iPhone 5 的屏幕为 1,136 × 640 像素,会发生什么情况?比赛应该延长吗?图像应该被裁剪吗?还是应该 libgdx
在两侧添加黑条以适合您使用的相机尺寸?此决定由您的相机正在使用的 viewport
做出。
简而言之就是这样。强烈建议在 wiki.
上阅读更多相关内容
此外,可以找到关于这个主题的很好的教程 here。
我的应用程序有问题。在 iPhone 上(在 5c、5s、6 上测试)我的两边都有两条黑色条纹(在 android 上看起来一切正常)。 我该如何处理它们?
这是我的绘图代码
@Override
public void create () {
mWidth = Gdx.graphics.getWidth();
mHeight = Gdx.graphics.getHeight();
mScale = Math.max(mWidth, mHeight) / 20f;
backgroundTexture = new Texture(Gdx.files.internal("backBlue.png"));
ShaderProgram.pedantic = false;
backgroundShader = new ShaderProgram(VERT, FRAG);
if (!backgroundShader.isCompiled()) {
System.err.println(backgroundShader.getLog());
System.exit(0);
}
if (backgroundShader.getLog().length()!=0)
System.out.println(backgroundShader.getLog());
backgroundBatch = new SpriteBatch(5, backgroundShader);
}
@Override
public void render () {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
backgroundBatch.begin();
backgroundBatch.draw(backgroundTexture, 0, 0, mWidth, mHeight);
backgroundBatch.end();
...
}
@Override
public void resize (int width, int height) {
mWidth = width;
mHeight = height;
mScale = Math.max(width, height) / 20f;
backgroundShader.begin();
backgroundShader.setUniformf("resolution", width, height);
backgroundShader.end();
}
这可能是因为您正在使用的 viewport
,它通常在构造函数或 create
方法中设置。
什么是viewport
?
基本上,viewport
是一个创建的对象,用于定义游戏在不同屏幕上的绘制方式。例如,假设您的相机设置为 480 x 800(像素)。如果您的游戏 运行 在不同比例的屏幕上显示,例如 iPhone 5 的屏幕为 1,136 × 640 像素,会发生什么情况?比赛应该延长吗?图像应该被裁剪吗?还是应该 libgdx
在两侧添加黑条以适合您使用的相机尺寸?此决定由您的相机正在使用的 viewport
做出。
简而言之就是这样。强烈建议在 wiki.
上阅读更多相关内容此外,可以找到关于这个主题的很好的教程 here。