FXGL getAssetLoader().loadFont() не удается загрузить шрифт TTF из каталога /assets/ui/fonts/JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 FXGL getAssetLoader().loadFont() не удается загрузить шрифт TTF из каталога /assets/ui/fonts/

Сообщение Anonymous »

Я пытаюсь загрузить собственный шрифт TTF в игровое приложение FXGL 21.1, но getAssetLoader().loadFont() постоянно не может найти файл шрифта, хотя он существует в правильной структуре каталогов.
Вот как выглядит структура моего проекта:
скриншот организации/структуры моего проекта
Я также ссылался на документы/вики, и В FXGL 11 указано, как должны быть организованы ресурсы (чему я следую)
скриншот того, как должны быть организованы ресурсы из документации FXGL
Это мой код

Код: Выделить всё

private static final String GAME_FONT = "Astroz Trial.ttf";

@Override
protected void initUI() {
Text scoreText = getUIFactoryService().newText("", Color.BLACK, 32);

try {
scoreText.setFont(getAssetLoader().loadFont(GAME_FONT).newFont(32));
} catch (Exception e) {
System.out.println("Custom font not found at: " + GAME_FONT + ", using default font");
}

scoreText.textProperty().bind(getip("score").asString("Score: %d"));
addUINode(scoreText);
Вывод ошибки

Код: Выделить всё

Custom font not found at: Astroz Trial.ttf, using default font
В журналах FXGL показано:

Код: Выделить всё

WARN  FXGLAssetLoaderServi - Asset "/assets/ui/fonts/Astroz Trial.ttf" was not found!
WARN  FXGLAssetLoaderServi - Failed to load FONT
Что я пробовал
  • Проверил, что файл существует в src/main/resources/assets/ui/fonts/Astroz Trial.ttf
  • Подтвердил, что файл упаковывается (виден в структуре проекта IDE)
  • Попытался переименовать файл, чтобы удалить пробелы: AstrozTrial.ttf (тот же результат)
  • Выполнена чистая сборка: mvn clean compile
  • Другие ресурсы (текстуры, звуки, музыка) успешно загружаются из /assets/textures/ и /assets/sounds/
Среда
  • FXGL: 21.1
  • JavaFX: 21.0.1
  • Java: 25.0.1
  • Инструмент сборки: Maven
Вопрос
Как правильно загрузить собственный шрифт TTF в FXGL? Ожидает ли getAssetLoader().loadFont() другую структуру каталогов или формат пути к файлу, чем другие типы ресурсов?
Альтернативные подходы с использованием JavaFX Font.loadFont() также терпят неудачу, а попытка установить шрифт в объекте Text FXGL выдает сообщение «Text.font: связанное значение не может быть установлено», поскольку UIFactory уже связывает свойство шрифта.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ui-fonts-d
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»