Пятница, 08 Ноября 2024, 19:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
LibGDX.Что использовать для рисования текста?
NecrolichДата: Вторник, 03 Ноября 2015, 19:03 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Вот начал осваивать libGDX, полазил по документации нашел в UI только Label.Но мне не нравится, что там нельзя меня размер шрифта(или я не понял, или там только Scale, а это не есть хорошо). Так как нормально нарисовать текст?
AlexSteinДата: Воскресенье, 08 Ноября 2015, 23:42 | Сообщение # 2
частый гость
Сейчас нет на сайте
Тебе возможно нужен Freetype

Цитата
С помощью расширения gdx-freetype можно использовать русские шрифты.
И любые другие шрифты, хоть китайский или японский.

■ 1. В генераторе проекта желательно поставить галочку на Freetype
■ 2. Для русских шрифтов нужна строка-константа

final String FONT_CHARS = "абвгдежзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789][_!$%#@|\\/?-+=()*&.;:,{}\"´`'<>";

Или

String FONT_CHARS = "";
for( int i = 32; i < 127; i++ ) FONT_CHARS += (char)i; // цифры и весь английский
for( int i = 1024; i < 1104; i++ ) FONT_CHARS += (char)i; // русские

■ 3. Для управлением шрифтом одного размера нужна переменная типа BitmapFont.
BitmapFont font1;

■ 4. Генерируются шрифты следующим образом:

final String FONT_PATH = "Comfortaa_regular.ttf";
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal(FONT_PATH));
FreeTypeFontParameter parameter = new FreeTypeFontParameter();
parameter.characters = FONT_CHARS;
parameter.size = 15;
parameter.color = Color.BLACK;
font1 = generator.generateFont(parameter);
generator.dispose();

■ 5. Вывести на экран текст можно либо прямо через батч:

batch.begin();
font1.draw(batch, "First font! фыва фыва жождлолдо джллож лол жо ", 50, 350);
batch.end();

Либо создать актёра Label и добавить его к Stage:

LabelStyle labelStyle = new LabelStyle();
labelStyle.font = font1;

Label myLabel = new Label( "bla bla тест абвгд ежз", labelStyle );
myLabel.setPosition(100, 400);

stage.addActor(myLabel);

■ 6. В диспозе не забудьте: font1.dispose();
NecrolichДата: Понедельник, 09 Ноября 2015, 16:50 | Сообщение # 3
почетный гость
Сейчас нет на сайте
AlexStein, Да, для генерации шрифтов нужен FreeType)
AlexSteinДата: Понедельник, 09 Ноября 2015, 17:48 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата Necrolich ()
AlexStein, Да, для генерации шрифтов нужен FreeType)


Тогда я не понимаю, что тебе нужно... Генерируешь шрифт и в render при помощи SpriteBatch рендеришь
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг