2013-04-14 2 views
0

Я экспериментировал со строковой печатью в LWJGL с использованием slickutils. Как правило, при просмотре в Интернете я нашел два подхода к этому. Сначала это растровые изображения, в которых у вас есть весь алфавит, и печатайте каждую букву в виде текстуры, а другая использует TrueTypeFont s и метод truetypefont.drawString(20f,20f,"LWJGL String Test", Color.green). Однако, большая часть литературы, которую я нашел, была несколько лет. Каков правильный способ сделать это в настоящее время?Рисование строк с slick2d и TTF

В данный момент я использую метод TrueTypeFont, однако мой результат смущает меня. enter image description here

//It doesn't matter which Font I try to load, I get the same green bar. 
//I think it has something to do with not finding the Fonts? 
Font awtFont = new Font("Times New Roman", Font.BOLD, 24); 
TrueTypeFont font = new TrueTypeFont(awtFont, true); 
font.drawString(20f, 20f, "LWJGL TEST STRING",Color.green); 

Я также скопировал пример из Интернета и получить тот же результат (только бар). Пробовал поиск по Google, но не смог найти никаких исправлений.

ответ

0

TrueTypeFont устарел. Вместо этого используйте UnicodeFont.

Проверьте это:

// Create a font with the size of 20, and not bold or italic. 
Unicode font = new UnicodeFont("res/font.ttf", 20, false, false); 

font.addAsciiGlyphs(); 
font.getEffects().add(new ColorEffect()); 
font.loadGlyphs(); 

g.setFont(font); 
g.drawString("Shit example", 100, 100); 
+0

Hm, от более прибегая к помощи его, кажется, я должен использовать 'BitmapFont' хотя я не могу найти учебники по этим. Вы случайно ничего не знаете об этом? –

+0

Растровый шрифт сделан из файла изображения с разбиением. Это я знаю. Oh и Minecraft также используют шрифты Bitmap. :) – HUNeater

+0

О, после некоторых поисков, я понял. В Slick2d это называется AngelCodeFont. 'Font font = new AngelCodeFont (" res/demo.fnt "," res/demo.tga ");' [Подробнее] (http://www.slick2d.org/wiki/index.php/AngelCodeFont) – HUNeater