Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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, palette_index: int = 0, custom_colors: PackedColorArray = PackedColorArray()) 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_palette_colors(index: int) const |
|
get_palette_count() const |
|
get_palette_name(index: int) 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, palette_index: int = 0, custom_colors: PackedColorArray = PackedColorArray()) 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 (локализованные названия шрифтов, версия, описание, информация о лицензии, пример текста и т. д.).
PackedColorArray get_palette_colors(index: int) const 🔗
Возвращает массив в предопределенной цветовой палитре по адресу index. Палитра содержит все цвета, используемые для отображения глифов шрифта. Каждая палитра содержит одинаковое количество цветов. Цвета можно переопределить с помощью FontVariation.
int get_palette_count() const 🔗
Возвращает количество предопределенных цветовых палитр. Палитра содержит все цвета, используемые для отображения глифов шрифта. Каждая палитра содержит одинаковое количество цветов.
String get_palette_name(index: int) const 🔗
Возвращает название предопределенной цветовой палитры по адресу index. Палитра содержит все цвета, используемые для отображения глифов шрифта. Каждая палитра содержит одинаковое количество цветов.
Возвращает 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_*.