2016-05-06 2 views
1

Так как я, кажется, не могу поместить шрифт в таблицу и развернуть его сверху и вправо, интересно, какое решение для рисования шрифтов в правом верхнем углу экрана.Libgdx aligning Растровый шрифт в верхнем правом углу экрана

Я пытаюсь с этим:

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

который выравнивает это прекрасно, когда я тестирую его на моем Xperia Z1, который имеет разрешение 1920х1080. Но когда я тестирую его на Nexus S, который составляет 800x400, выравнивание полностью неверно, шрифт рисуется в левой нижней части экрана.

Любые решения?

ответ

0

С помощью 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

это работает отлично. но как добавить правый край –

Смежные вопросы