2014-02-12 4 views
2

Извините, что я немного новичок в libgdx (очень нравится это до сих пор!), Так что может быть немного стартовый вопросBitmapFont получить строку по границам?

Я реализую класс диалогового окна для своей игры в RPG. В основном у меня есть дисплей персонажа по характеру, как вы видите в играх Final Fantasy, когда люди говорят. Я отлично справился с переносом слов, используя класс BitmapFontCache. Мой следующий шаг - реализовать «пейджинг». (т. е. вы передаете строку в класс диалога для отображения, и она определяет, какие части строки могут вписываться в каждую страницу диалога). У меня с этим немного проблем, не прибегая к вычислению собственного обертывания слов.

Есть функция, которую я могу передать ограничениям своего диалогового окна (скажем, прямоугольник) и вернуть часть строки, которая будет соответствовать этому ограничению? (с учетом переноса слов + концевых линий и т.п.). Я могу прокручивать символ по символу и использовать getWrappedBounds (а затем останавливаться, когда он переместит мою высоту ограничения), но я чувствую, что мне все равно придется учитывать перенос слов при получении строки.

Любые идеи?

ответ

1

У меня есть два ответа на вы-

Во-первых, я думаю, что эта функция делает то, что вы ищете: addWrappedText (java.lang.CharSequence ул, поплавковым х, у, флоат всплывают wrapWidth) (javadoc).

Во-вторых, вы можете захотеть изучить встроенные компоненты графического интерфейса, а не создавать свои собственные. Я бы порекомендовал вам посмотреть на scene2d ui, который представляет собой библиотеку, которая поставляется с libgdx и позволяет быстро создавать гибкие графические интерфейсы. Это займет немного работы, чтобы настроить, но это дает вам много вариантов позже, так как вы получаете такие вещи, как шкуры и девять патчей бесплатно, так что я настоятельно рекомендую вам посмотреть на него.

+0

Hi John благодарит за ответ. Вы имеете в виду добавление символа по символу, а затем проверку, когда границы превышают? Разве мне все равно не нужно было бы обманывать слова? (Скажем, когда он находится в середине слова и превышает границу, я хочу, чтобы это слово переместилось на следующую страницу). – Arbel

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