Java 安装视口黑条
我目前正在开发一个游戏,你必须避免小行星。为了使游戏在每台设备上看起来都一样,我使用了FitViewport。不幸的是,我不知怎的在顶部和底部得到了白色的条,而不是黑色的条。我的游戏背景也是白色的,所以看起来有点怪 游戏屏幕:Java 安装视口黑条,java,android,libgdx,Java,Android,Libgdx,我目前正在开发一个游戏,你必须避免小行星。为了使游戏在每台设备上看起来都一样,我使用了FitViewport。不幸的是,我不知怎的在顶部和底部得到了白色的条,而不是黑色的条。我的游戏背景也是白色的,所以看起来有点怪 游戏屏幕: @Override public void create() { float aspectRatio = (float)Gdx.graphics.getWidth() / (float)Gdx.graphics.getHei
@Override
public void create()
{
float aspectRatio = (float)Gdx.graphics.getWidth() / (float)Gdx.graphics.getHeight();
cam = new OrthographicCamera();
viewport = new FitViewport(MyGdxGame.WIDTH * aspectRatio, MyGdxGame.HEIGHT, cam);
[...]
}
@Override
public void render(SpriteBatch batch)
{
cam.update();
batch.setProjectionMatrix(cam.combined);
batch.begin();
em.render(batch); //render Ship and Asteroids
[...]
}
@Override
public void resize(int width, int height)
{
viewport.update(width, height);
cam.position.set(MyGdxGame.WIDTH / 2, MyGdxGame.HEIGHT /2, 0);
}
我把船拖到了白色的栏中。LibGDX提供了一种更方便的方式来处理不同的纵横比。您不必将MyGdxGame.WIDTH与aspectRatio相乘。只需使用MyGdxGame.WIDTH和MyGdxGame.HEIGHT初始化它 此外,在“调整大小”功能中,可以使用视口值(而不是常数)更改cam位置:
LibGDX提供了一种更方便的方式来处理不同的纵横比。您不必将MyGdxGame.WIDTH与aspectRatio相乘。只需使用MyGdxGame.WIDTH和MyGdxGame.HEIGHT初始化它 此外,在“调整大小”功能中,可以使用视口值(而不是常数)更改cam位置:
我在你的代码中发现了一些问题。要获得处理不同屏幕比例时的最佳实践,请尝试使用“填充”视口。这里只是使用“填充”视口编辑代码。试试看
@Override
public void create()
{
float aspectRatio = (float)Gdx.graphics.getWidth() / (float)Gdx.graphics.getHeight();
camera = new OrthographicCamera();
camera.position.set(0, 0, 0);
camera.update();
//1280 is the screen width and 800 is screen height
camera.setToOrtho(false, 1280, 800);
viewPort = new FillViewport(1280, 800, camera);
}
@Override
public void render(SpriteBatch batch)
{
batch.setProjectionMatrix(camera.combined);
batch.begin();
em.render(batch); //render Ship and Asteroids
[...]
}
@Override
public void resize(int width, int height)
{
viewPort.update(width, height);
}
just try with the above code . it will definitely work
我在你的代码中发现了一些问题。要获得处理不同屏幕比例时的最佳实践,请尝试使用“填充”视口。这里只是使用“填充”视口编辑代码。试试看
@Override
public void create()
{
float aspectRatio = (float)Gdx.graphics.getWidth() / (float)Gdx.graphics.getHeight();
camera = new OrthographicCamera();
camera.position.set(0, 0, 0);
camera.update();
//1280 is the screen width and 800 is screen height
camera.setToOrtho(false, 1280, 800);
viewPort = new FillViewport(1280, 800, camera);
}
@Override
public void render(SpriteBatch batch)
{
batch.setProjectionMatrix(camera.combined);
batch.begin();
em.render(batch); //render Ship and Asteroids
[...]
}
@Override
public void resize(int width, int height)
{
viewPort.update(width, height);
}
just try with the above code . it will definitely work
如果尚未添加这些行,请尝试在
cam.update()
之前添加这些行:Gdx.gl.glClearColor(0f,0f,0f,1f)
Gdx.gl.glClear(GL20.gl\u COLOR\u BUFFER\u BIT)
不幸的是,这两行的孔背景是黑色的。我想如果我想创造效果,我必须使用白色纹理作为背景-感谢您尝试在cam.update()
之前添加这些行,如果您还没有:Gdx.gl.glClearColor(0f,0f,0f,1f)
Gdx.gl.glClear(GL20.gl\u COLOR\u BUFFER\u BIT)
不幸的是,这两行的孔背景是黑色的。我想如果我想创造效果,我必须使用白色纹理作为背景-谢谢-