lwjgl и slick-util рендеринг текста

Позвольте мне начать с того, что я не могу найти файл Slick2d.jar нигде в Интернете, кроме того, мой проект не обязательно всегда будет в 2D, поэтому я бы предпочел использовать slick-util, поскольку это рекомендуется на веб-сайте lwjgl. Кроме того, я знаю, что TrueTypeFont обесценивается в slick2d, но это единственный способ рисовать текст в slick-util.

SO мой код имеет следующие строки:

import java.awt.Font;
import org.newdawn.slick.TrueTypeFont;
import org.newdawn.slick.Color;

...

Font awtFont = new Font("Times New Roman", Font.ITALIC, 24);
font = new TrueTypeFont(awtFont, antiAlias);

...

font.drawString(dim.width/4+10,0, Income, Color.yellow)

...

Так как я получаю один большой желтый блок, я понятия не имею, как это исправить. GL_TEXTURE_2D уже включен, и я также делаю все вызовы смешивания, которые другие люди упомянули как решения.

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

person noztol    schedule 26.04.2013    source источник


Ответы (3)


Поздний ответ, но я не смог ничего найти, когда ранее искал решения TrueTypeFont.

Что меня испортило (и сделал блок вместо текста), так это вызов/отрисовка как переднего, так и заднего буфера по разным другим причинам в моей программе.

GL11.glDrawBuffer(GL11.GL_FRONT_AND_BACK);
drawOtherStuff();

По какой-то причине drawString() отображается нормально, если я вызываю/отрисовываю только задний буфер (а затем возвращаюсь вперед и назад, прежде чем снова рисовать другие вещи).

GL11.glDrawBuffer(GL11.GL_BACK);
font.drawString(100, 50, "THE LIGHTWEIGHT JAVA GAMES LIBRARY", Color.yellow);

Не знаю, почему это работает. Также не уверен, что это относится к моей проблеме, но надеюсь, что это может сработать как временное решение для других.

person DreamSea    schedule 03.11.2013

Что ж, я не могу комментировать, поэтому @Twister1002 «Slick-Util использует встроенную в Java поддержку шрифтов AWT для загрузки шрифтов, поэтому обязательно ознакомьтесь с классом шрифтов AWT. Вы можете использовать встроенные шрифты java по умолчанию. или загрузить внешние файлы ttf. Библиотека Slick-Util преобразует шрифт AWT, чтобы его можно было использовать с OpenGL. Шрифты сохраняются и рисуются с помощью класса TrueTypeFont slick».

И чтобы ответить на ваш вопрос: http://ninjacave.com/slickutil3 Этот пример отлично работает для меня. Что касается того, что вызвало вашу первоначальную проблему, я не вижу ничего из того, что вы опубликовали (в небольшом количестве кода, который вы опубликовали), что могло бы вызвать такую ​​​​ошибку.

person DaCoder    schedule 12.02.2014

Вы должны использовать загруженный файл Slick.jar. Все исключения вызывают "SlickExcpetion". Если вы также посмотрите на графический метод, он говорит, что тип Font, однако это ДОЛЖЕН быть тип org.newdawn.slick.Font. Его НЕЛЬЗЯ использовать с AWT.

Я узнал, используя Slick, что вы должны использовать все его компоненты Slick; ни один из java.

person Twister1002    schedule 25.05.2013