繁体   English   中英

Android中的LibGDX屏幕支持大小

[英]LibGDX Screen Support Sizes in Android

我正在尝试使用LibGDX创建游戏。 当我将背景放在屏幕上时,就会出现我的问题。 为了简化起见,我创建了一个基本屏幕(抽象)。 在台式机中,屏幕非常合适,但是在Android中,尝试使用其他设备时,屏幕无法缩放到全屏。 我使用下面的简单代码解决了这种情况:

public void render(float delta) { 
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    batch.begin(); 
    batch.draw(texture, 0, 0, Gdx.graphics.getWidth(),  Gdx.graphics.getHeight()); 
    batch.end();
}

这足以在Android设备上全屏查看我的游戏。 现在,我想使用Scene2D(我不太了解...)所以我创建了一个舞台,我像演员一样处理背景。 这是我的代码。

public class MenuScreen extends BaseScreen {

private FitViewport viewport;
private Stage stage;
private Image imageFondo, imagePrueba;
//private float escala;

public MenuScreen(MissingWords missingwords) {
    super(missingwords);
}

@Override
public void show() {
    //viewport = new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    viewport = new FitViewport(800, 480);
    stage = new Stage(viewport, missingwords.getSB()); 
    //Gdx.input.setInputProcessor(stage);

    /* Crear fondo */

    imageFondo = new Image(missingwords.getAM().get("fondo.png", Texture.class));
    stage.addActor(imageFondo);

    imagePrueba = new Image(missingwords.getAM().get("prueba.png", Texture.class));
    imagePrueba.setPosition(50, 50);
    stage.addActor(imagePrueba);
}

@Override
public void render(float delta) {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    stage.act();
    stage.draw();
}

@Override
public void resize(int width, int height) {
    stage.getViewport().update(width, height, true);

}

但是,它不起作用,我也不知道我是否以正确的方式使用了视口。 如何编写此行以便与Scene 2D兼容并支持android设备?

batch.draw(texture, 0, 0, Gdx.graphics.getWidth(),  Gdx.graphics.getHeight());

提前致谢。

最后,我使用ScalingViewport “解决”了它。 像这样:

viewport = new ScalingViewport(Scaling.stretch, 800, 480);

就像javadoc所说的Scaling.stretch :世界被缩放以占据整个屏幕。 因此,它不能保持宽高比,但对我来说是很好的。 使用大屏幕可能看起来不对,但是我仍在学习,我不知道这是否是最佳解决方案。 因此,我希望这对某人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM