Как использовать пользовательский шрифт с классом Slick UnicodeFont? - PullRequest
1 голос
/ 01 декабря 2011

Я использую этот код, который был оторван и изменен из учебника Slick Wiki Unicode:

UnicodeFont menuFont = new UnicodeFont("/fonts/mailrays.ttf", 8, false, false);

menuFont.addAsciiGlyphs();
menuFont.addGlyphs(400, 600);
menuFont.getEffects().add(new ColorEffect());
menuFont.loadGlyphs();

menuFont.drawString(25.0f, -80.0f, "Snake", new Color(1.0f, 1.0f, 1.0f));

Но когда строка отображается на экране, она использует консольный шрифт с низким разрешением, что яПредположим, это по умолчанию.Что может помешать строке использовать шрифт, который я передал в конструктор (mailrays.tff)?

1 Ответ

2 голосов
/ 13 февраля 2012

Я знаю, что это почти два месяца, но если вы все еще ищете ответ ...

Если Slick не может найти ваш шрифт, вы получите RuntimeException при попытке создать экземпляр шрифта. Чтобы убедиться в этом, попробуйте указать имя шрифта, которого вы не знаете на вашем компьютере (например, "crap.ttf") ... Скорее всего, вы увидите что-то вроде:

Исключение в потоке "main" java.lang.RuntimeException: ресурс не найден: crap.ttf в org.newdawn.slick.util.ResourceLoader.getResourceAsStream (ResourceLoader.java:69) в org.newdawn.slick.UnicodeFont.createFont (UnicodeFont.java:61)

Учитывая это, проблема здесь, вероятно, в размере шрифта, который вы создаете. Попытка создать 8-точечный шрифт вызовет хаос для многих шрифтов TTF, и результат может выглядеть в низком разрешении, как вы описали. Чтобы убедиться в этом, попробуйте создать шрифт большего размера, возможно, 12 пунктов или около того. Это, очевидно, будет больше, чем вы хотите, но, по крайней мере, это будет проверять, что вы загружаете правильный шрифт и проблема просто масштабируется. Если это так, вам просто нужно найти шрифт, который лучше масштабируется в диапазоне 8 пунктов.

Надеюсь, это поможет!

...