Вот как выглядит структура моего проекта:
скриншот организации/структуры моего проекта
Я также ссылался на документы/вики, и В 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
Код: Выделить всё
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
Мобильная версия