gpt4 book ai didi

java - Libgdx:使用 BitmapFont 的不同位置

转载 作者:行者123 更新时间:2023-11-30 03:02:29 26 4
gpt4 key购买 nike

我在(非常)简单的项目中遇到了一个问题。当我绘制文本时,它在 Android(Samsung Galaxy S Advance)和桌面之间显示在不同的位置(并且明显具有不同的大小)。

在我的渲染器类中我有:

private OrthographicCamera cam;
public final int WIDTH = 320;
public final int HEIGHT = 480;

private ShapeRenderer debugRenderer = new ShapeRenderer();
private SpriteBatch batch = new SpriteBatch();
private BitmapFont font;

在我的构造函数中:

MyClass(){
this.cam = new OrthographicCamera(WIDTH, HEIGHT);
this.cam.position.set(WIDTH/2, HEIGHT/2, 0);
this.cam.update();
font = new BitmapFont(Gdx.files.internal("data/fonts/font.fnt"));

font.setColor(Color.RED);
}

最后,渲染函数:

public void render() {
// For each block y use this code:
// debugRenderer.begin(ShapeType.Filled);

// Rectangle rect = block.getBounds();
// debugRenderer.rect(rect.x, rect.y, rect.width, rect.height);
// debugRenderer.end();

// And then I draw my text:

batch.begin();

font.draw(batch, "Score: " + world.getScore(), 50,50)
batch.end();
}

所有 block 尺寸都是绝对数字(与任何变量无关,如 stage.getWidth() 或类似的东西)。

Desktop 中的结果如下: Desktop appearance

在 Android 中我有: Android appearance

如您所见, block 在屏幕上具有相同的分布(以屏幕覆盖百分比表示),而文本则不同。它不是从同一个地方开始,也没有相同的高度。

有人知道我可能做错了什么吗?

为了以防万一, block 边界是:

XPos: 45 * i
YPos: 45 * j
SizeX: 32
SizeY: 32

编辑:另一个考虑,我使用的字体是从:https://github.com/libgdx/libgdx/tree/master/demos/superjumper 中提取的。

最佳答案

this.cam.update(); 之后你做 -

batch.setProjectionMatrix(this.cam.combined);
debugRenderer.setProjectionMatrix(this.cam.combined);

关于java - Libgdx:使用 BitmapFont 的不同位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com