因此,由于我似乎无法将字体放到表格中并向上和向右展开,所以我想知道在屏幕右上方绘制字体的解决方案是什么。

我正在尝试这样做:

highScoreFont.draw(batch, "" + getHighScore, Gdx.graphics.getWidth() - 1070, Gdx.graphics.getHeight() - 650);


当我在分辨率为1920x1080的Xperia Z1上对其进行测试时,它可以完美对齐。但是,当我在800x400的Nexus S上进行测试时,对齐方式完全错误,该字体会在屏幕的左下方显示。

有什么办法吗?

最佳答案

使用scene2d,可以将BitmapFont与Tables一起使用,只需要使用Label,而不是直接使用BitmapFont。

BitmapFont font = ...;
Label label = new Label(new LabelStyle(font, Color.WHITE));
Table table = new Table();
table.add(label).expand().top().right();


这是首选,因为场景将根据设备的大小而定,您不必担心设备的屏幕大小。

使用Gdx.graphics.getWidth()返回设备的宽度,不一定返回视口的宽度,因此使用该值定位元素将导致设备之间的不一致。硬编码位置通常很难维护,但是如果您要采用这种方式,我建议您根据视口大小而不是Gdx.graphics返回的值来查找定位元素。

10-07 18:56
查看更多