Font
Наследует: Resource < RefCounted < Object
Наследуется от: FontFile, FontVariation, SystemFont
Абстрактный базовый класс для шрифтов и вариаций шрифтов.
Описание
Абстрактный базовый класс для разных типов шрифтов. Имеет методы для рисования текста и интроспекции символов шрифта.
Свойства
|
Методы
draw_char(canvas_item: RID, pos: Vector2, char: int, font_size: int, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const |
|
draw_char_outline(canvas_item: RID, pos: Vector2, char: int, font_size: int, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const |
|
void |
draw_multiline_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_multiline_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
void |
draw_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const |
find_variation(variation_coordinates: Dictionary, face_index: int = 0, strength: float = 0.0, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), spacing_top: int = 0, spacing_bottom: int = 0, spacing_space: int = 0, spacing_glyph: int = 0, baseline_offset: float = 0.0) const |
|
get_ascent(font_size: int = 16) const |
|
get_char_size(char: int, font_size: int) const |
|
get_descent(font_size: int = 16) const |
|
get_face_count() const |
|
get_font_name() const |
|
get_font_stretch() const |
|
BitField[FontStyle] |
get_font_style() const |
get_font_style_name() const |
|
get_font_weight() const |
|
get_height(font_size: int = 16) const |
|
get_multiline_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const |
|
get_opentype_features() const |
|
get_ot_name_strings() const |
|
get_rids() const |
|
get_spacing(spacing: SpacingType) const |
|
get_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const |
|
get_supported_chars() const |
|
get_supported_feature_list() const |
|
get_supported_variation_list() const |
|
get_underline_position(font_size: int = 16) const |
|
get_underline_thickness(font_size: int = 16) const |
|
is_language_supported(language: String) const |
|
is_script_supported(script: String) const |
|
void |
set_cache_capacity(single_line: int, multi_line: int) |
Описания свойств
Массив резервных Font для использования в качестве замены, если глиф не найден в текущем Font.
Если этот массив пуст в FontVariation, вместо него используются резервные FontVariation.base_font.
Описания метода
float draw_char(canvas_item: RID, pos: Vector2, char: int, font_size: int, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗
Нарисуйте один символ Unicode char на элементе холста, используя шрифт, в заданной позиции, с цветом modulate. pos указывает базовую линию, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
Примечание: Не используйте эту функцию для рисования строк посимвольно, используйте вместо этого draw_string() или TextLine.
float draw_char_outline(canvas_item: RID, pos: Vector2, char: int, font_size: int, size: int = -1, modulate: Color = Color(1, 1, 1, 1), oversampling: float = 0.0) const 🔗
Нарисуйте контур одного символа Unicode char в элементе холста, используя шрифт, в заданной позиции, с цветом modulate и размером контура size. pos указывает базовую линию, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
Примечание: Не используйте эту функцию для рисования строк посимвольно, вместо этого используйте draw_string() или TextLine.
void draw_multiline_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Разбивает text на строки, используя правила, заданные brk_flags, и рисует его в элементе холста, используя шрифт, в заданной позиции, с цветом modulate, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию первой строки, а не верхнюю. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
См. также CanvasItem.draw_multiline_string().
void draw_multiline_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Разбивает text на строки, используя правила, заданные brk_flags, и рисует контур текста в элементе холста, используя шрифт, в заданной позиции, с цветом modulate и размером контура size, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию первой строки, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
См. также CanvasItem.draw_multiline_string_outline().
void draw_string(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Нарисуйте text на элементе холста, используя шрифт, в заданной позиции, с modulate цветом, опционально обрезав ширину и выровняв по горизонтали. pos указывает базовую линию, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
См. также CanvasItem.draw_string().
void draw_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0, oversampling: float = 0.0) const 🔗
Нарисовать text контур в элементе холста, используя шрифт, в заданной позиции, с modulate цветом и size размером контура, опционально обрезая ширину и выравнивая по горизонтали. pos указывает базовую линию, а не верх. Чтобы рисовать сверху, ascent необходимо добавить к оси Y. Если oversampling больше нуля, он используется как фактор передискретизации шрифта, в противном случае используются настройки передискретизации области просмотра.
См. также CanvasItem.draw_string_outline().
RID find_variation(variation_coordinates: Dictionary, face_index: int = 0, strength: float = 0.0, transform: Transform2D = Transform2D(1, 0, 0, 1, 0, 0), spacing_top: int = 0, spacing_bottom: int = 0, spacing_space: int = 0, spacing_glyph: int = 0, baseline_offset: float = 0.0) const 🔗
Возвращает TextServer RID кэша шрифтов для определенной вариации.
float get_ascent(font_size: int = 16) const 🔗
Возвращает средний подъем шрифта (количество пикселей над базовой линией).
Примечание: Реальный подъем строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку (например, как подъем пустой строки).
Vector2 get_char_size(char: int, font_size: int) const 🔗
Возвращает размер символа. Не учитывает кернинг.
Примечание: Не используйте эту функцию для вычисления ширины строки символ за символом, вместо этого используйте get_string_size() или TextLine. Возвращаемая высота — это высота шрифта (см. также get_height()) и не имеет отношения к высоте глифа.
float get_descent(font_size: int = 16) const 🔗
Возвращает средний спуск шрифта (количество пикселей ниже базовой линии).
Примечание: Реальный спуск строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку (например, как спуск пустой строки).
Возвращает количество шрифтов в коллекции TrueType / OpenType.
String get_font_name() const 🔗
Возвращает имя семейства шрифтов.
int get_font_stretch() const 🔗
Возвращает величину растяжения шрифта по сравнению с нормальной шириной. Процентное значение между 50% и 200%.
BitField[FontStyle] get_font_style() const 🔗
Возвращает флаги стиля шрифта.
String get_font_style_name() const 🔗
Возвращает имя стиля шрифта.
Возвращает жирность (начертание) шрифта. Значение в диапазоне 100...999, нормальный шрифт — 400, жирный шрифт — 700.
float get_height(font_size: int = 16) const 🔗
Возвращает общую среднюю высоту шрифта (подъем плюс спуск) в пикселях.
Примечание: Реальная высота строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте ее только как грубую оценку (например, как высоту пустой строки).
Vector2 get_multiline_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, max_lines: int = -1, brk_flags: BitField[LineBreakFlag] = 3, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const 🔗
Возвращает размер ограничивающего прямоугольника строки, разбитой на строки, с учетом кернинга и продвижения.
См. также draw multiline string().
Dictionary get_opentype_features() const 🔗
Возвращает набор тегов функций OpenType. Дополнительная информация: Теги функций OpenType.
Dictionary get_ot_name_strings() const 🔗
Возвращает Dictionary со строками названий шрифтов OpenType (локализованные названия шрифтов, версия, описание, информация о лицензии, пример текста и т. д.).
Возвращает Array допустимых Font RID, которые можно передать методам TextServer.
int get_spacing(spacing: SpacingType) const 🔗
Возвращает величину интервала для заданного типа spacing.
Vector2 get_string_size(text: String, alignment: HorizontalAlignment = 0, width: float = -1, font_size: int = 16, justification_flags: BitField[JustificationFlag] = 3, direction: Direction = 0, orientation: Orientation = 0) const 🔗
Возвращает размер ограничивающего прямоугольника однострочной строки с учетом кернинга, продвижения и субпиксельного позиционирования. См. также get_multiline_string_size() и draw_string().
Например, чтобы получить размер строки, отображаемый однострочной меткой (Label), используйте:
var string_size = $Label.get_theme_font("font").get_string_size($Label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label.get_theme_font_size("font_size"))
Label label = GetNode<Label>("Label");
Vector2 stringSize = label.GetThemeFont("font").GetStringSize(label.Text, HorizontalAlignment.Left, -1, label.GetThemeFontSize("font_size"));
Примечание: Поскольку кернинг, продвижение и субпиксельное позиционирование учитываются get_string_size(), использование отдельных вызовов get_string_size() для подстрок строки, а затем сложение результатов вернет другой результат по сравнению с использованием одного вызова get_string_size() для всей строки.
Примечание: Реальная высота строки зависит от контекста и может значительно отличаться от значения, возвращаемого get_height().
String get_supported_chars() const 🔗
Возвращает строку, содержащую все символы, доступные в шрифте.
Если заданный символ включен в более чем один источник данных шрифта, он появляется только один раз в возвращаемой строке.
Dictionary get_supported_feature_list() const 🔗
Возвращает список функций OpenType, поддерживаемых шрифтом.
Dictionary get_supported_variation_list() const 🔗
Возвращает список поддерживаемых координат вариантов, каждая координата возвращается как tag: Vector3i(min_value,max_value,default_value).
Вариации шрифта позволяют непрерывно изменять характеристики глифов вдоль некоторой заданной оси дизайна, такой как толщина, ширина или наклон.
Чтобы распечатать доступные оси вариаций переменного шрифта:
var fv = FontVariation.new()
fv.base_font = load("res://RobotoFlex.ttf")
var variation_list = fv.get_supported_variation_list()
for tag in variation_list:
var name = TextServerManager.get_primary_interface().tag_to_name(tag)
var values = variation_list[tag]
print("variation axis: %s (%d)\n\tmin, max, default: %s" % [name, tag, values])
Примечание: Чтобы задать и получить координаты вариации FontVariation, используйте FontVariation.variation_opentype.
float get_underline_position(font_size: int = 16) const 🔗
Возвращает среднее смещение подчеркивания в пикселях ниже базовой линии.
Примечание: Реальное положение подчеркивания строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте его только как грубую оценку.
float get_underline_thickness(font_size: int = 16) const 🔗
Возвращает среднюю толщину подчеркивания.
Примечание: Реальная толщина подчеркивания строки зависит от контекста и может значительно отличаться от значения, возвращаемого этой функцией. Используйте ее только как грубую оценку.
bool has_char(char: int) const 🔗
Возвращает true, если в шрифте доступен символ Unicode char.
bool is_language_supported(language: String) const 🔗
Возвращает true, если шрифт поддерживает указанный язык (в виде кода ISO 639).
bool is_script_supported(script: String) const 🔗
Возвращает true, если шрифт поддерживает указанный шрифт (в виде кода ISO 15924).
void set_cache_capacity(single_line: int, multi_line: int) 🔗
Устанавливает емкость кэша LRU для методов draw_*.