Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Libgdx:使用位图字体的不同位置_Java_Android_Libgdx - Fatal编程技术网

Java Libgdx:使用位图字体的不同位置

Java Libgdx:使用位图字体的不同位置,java,android,libgdx,Java,Android,Libgdx,我在我(非常)简单的项目中遇到了一个问题。当我绘制文本时,它显示在Android(三星Galaxy S Advance)和桌面之间的不同位置(显然大小不同) 在我的渲染器类中,我有: private OrthographicCamera cam; public final int WIDTH = 320; public final int HEIGHT = 480; private ShapeRenderer debugRenderer = new ShapeRenderer(); priv

我在我(非常)简单的项目中遇到了一个问题。当我绘制文本时,它显示在Android(三星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();
}
所有块维度都是绝对数(与stage.getWidth()之类的变量无关)

桌面中的结果如下所示:

在安卓系统中,我有:

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

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

为方便起见,块边界为:

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

编辑:另一个注意事项,我使用的字体是从以下内容中提取的:

this.cam.update()之后
batch.setProjectionMatrix(this.cam.combined);
debugRenderer.setProjectionMatrix(this.cam.combined);