godot: загрузить динамический c шрифт во время выполнения - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь нарисовать_строку во время выполнения, используя шрифт Dynami c.

Шрифт сохраняется в следующем месте: res: //assets/fonts/dynamicfont.tres

Вот мой код:

func _draw():

    var font = DynamicFont.new()
    font.size = 32
    font.set_font_data(load("res://assets/fonts/dynamicfont.tres"))



    draw_string(font, Vector2(45, 45), "1 2 3 4", Color(0, 0, 0))

Строка не отображается, похоже, что шрифт просто не загружается.

Я вижу много руководств, в которых рассказывается, как сгенерировать динамический c шрифт, но я не могу найти ни одного, описывающего, как его загружать во время выполнения и использовать. Возможно ли такое?

1 Ответ

0 голосов
/ 06 мая 2020

Я полагаю, вы сохранили там шрифт Dynami c. Итак, ваш tres - это не font_data, а сам полный шрифт. Вы не должны загружать ресурсы в функцию рисования, которая не будет работать должным образом.

Инициализируйте шрифт в функции готовности, а затем используйте его в рисовании:

var font

func _ready():
    font = load("res://assets/fonts/dynamicfont.tres")
    font.size = 32

func _draw():
    draw_string(font, Vector2(45,45), "1 2 3 4")

, если вы хотите измените шрифт, сделайте это за пределами функции рисования, а затем вызовите update (), чтобы принудительно перерисовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...