【问题标题】:Libgdx camera/scaling issueLibgdx 相机/缩放问题
【发布时间】:2015-07-24 23:33:18
【问题描述】:

这只是一个非常快速的帖子,想知道我做错了什么?

我希望用我拥有的任何屏幕尺寸在整个屏幕上填充背景,但这并不能使它起作用。 这里是全部代码:

// Variables

Jump game;

OrthographicCamera cam;

SpriteBatch sb;

 // Variables

public SplashScreen(Jump game)
{
    this.game = game;

    cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    cam.translate(cam.viewportWidth / 2, cam.viewportHeight / 2);

    sb = new SpriteBatch();
}

public void show() 
{

}

public void render(float delta) 
{
    Gdx.gl20.glClearColor(0.2F, 0.6F, 1F, 1F);

    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);

    cam.update();

    sb.begin();

    sb.setProjectionMatrix(cam.combined);

    sb.draw(Assets.splash_spr_background, 0, 0);

    sb.end();

}

谢谢! :)

【问题讨论】:

    标签: java camera libgdx scaling aspect-ratio


    【解决方案1】:

    问题是您的资产与视口的大小不同。请参阅下面的链接。 Libgdx 使用 Viewport 类来处理这个问题。

    How to deal with different aspect ratios in libGDX?

    How to scale image according to different screen resolutions in libgdx

    https://github.com/libgdx/libgdx/wiki/Viewports

    【讨论】:

    • 我认为相机/sb 或其他任何东西会注意到精灵小于屏幕尺寸并以某种方式调整它的大小? xD
    • 不是自动的。 Spritebatch 有一个 draw 方法,如果你想手动设置,可以手动设置宽度和高度,否则为你设置 Viewport。 libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/…
    • 好的,我会试试视口的东西,如果它有效,您将获得 +REP 并标记为您的帮助答案:)
    • - 我似乎无法让它工作!我很沮丧,背景覆盖了整个屏幕,但我没有看到我发布的图像中的文字,它只是背景颜色。这是我使用的代码:
    • public SplashScreen(Jump game) { this.game = game; BG_WORLD_WIDTH = 100; BG_WORLD_HEIGHT = 50; aspectRatio = (float)Gdx.graphics.getHeight() / (float)Gdx.graphics.getWidth(); cam = new OrthographicCamera(BG_WORLD_HEIGHT * aspectRatio, BG_WORLD_HEIGHT); cam.position.set(BG_WORLD_WIDTH / 2, BG_WORLD_HEIGHT / 2, 0); sb = 新的 SpriteBatch(); Assets.splash_spr_background.setSize(BG_WORLD_WIDTH, BG_WORLD_HEIGHT); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多