因为我似乎无法将字体放入表格并将其展开到顶部和右侧,我想知道在屏幕右上角绘制字体的解决方案是什么。
我正在尝试这个:
highScoreFont.draw(batch, "" + getHighScore, Gdx.graphics.getWidth() - 1070, Gdx.graphics.getHeight() - 650);
当我在Xperia Z1上测试它时,它完全对齐它,其分辨率为1920x1080。但是当我在800x400的Nexus S上进行测试时,对齐完全错误,字体会在屏幕的左下角绘制。
任何解决方案?
答案 0 :(得分:0)
使用scene2d,你可以使用带有Tables的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返回的值。