Libgdx将位图字体对齐屏幕的右上角

问题描述:

因此,由于我似乎无法将字体放到表中并将其扩展到顶部和右侧,我不知道在屏幕右上角绘制字体的解决方案是什么。Libgdx将位图字体对齐屏幕的右上角

我想这一点:

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

这完全对齐它,当我在我的Xperia Z1拥有的1920x1080分辨率测试它。但是当我在800x400的Nexus S上测试它时,对齐方式完全错误,字体会在屏幕的左下角显示。

任何解决方案?

使用scene2d,您可以对表使用BitmapFont,您只需使用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返回的值。

+0

这工作完美。但如何添加右边距 –