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.

Font

Успадковує: Resource < RefCounted < Object

Успадковано від: FontFile, FontVariation, SystemFont

Абстрактний базовий клас для шрифтів і варіацій шрифту.

Опис

Абстрактний базовий клас для різних типів шрифтів. Має методи малювання тексту та інтроспектування шрифтів.

Властивості

Array[Font]

fallbacks

[]

Методи

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

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

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

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

float

get_ascent(font_size: int = 16) const

Vector2

get_char_size(char: int, font_size: int) const

float

get_descent(font_size: int = 16) const

int

get_face_count() const

String

get_font_name() const

int

get_font_stretch() const

BitField[FontStyle]

get_font_style() const

String

get_font_style_name() const

int

get_font_weight() const

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

Dictionary

get_opentype_features() const

Dictionary

get_ot_name_strings() const

PackedColorArray

get_palette_colors(index: int) const

int

get_palette_count() const

String

get_palette_name(index: int) const

Array[RID]

get_rids() const

int

get_spacing(spacing: SpacingType) const

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

String

get_supported_chars() const

Dictionary

get_supported_feature_list() const

Dictionary

get_supported_variation_list() const

float

get_underline_position(font_size: int = 16) const

float

get_underline_thickness(font_size: int = 16) const

bool

has_char(char: int) const

bool

is_language_supported(language: String) const

bool

is_script_supported(script: String) const

void

set_cache_capacity(single_line: int, multi_line: int)


Описи властивостей

Array[Font] fallbacks = [] 🔗

Масив запасних 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію першого рядка, а не верхнього. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію першого рядка, а не верхнього. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 визначає базову лінію, а не верх. Щоб малювати зверху, до осі Y потрібно додати ascent. Якщо 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 🔗

Returns the maximum font ascent (number of pixels above the baseline) of this font and all fallback fonts.

Note: Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line).


Vector2 get_char_size(char: int, font_size: int) const 🔗

Повертає розмір персонажа. Не врахуйте керма в обліковий запис.

Примітка: Не використовуйте цю функцію для розрахунку ширини символу рядка за характером, використання get_string_size() або TextLine замість. Висота повертається - висота шрифту (див. також get_height()) і не має відношення до висоти гліфів.


float get_descent(font_size: int = 16) const 🔗

Returns the maximum font descent (number of pixels below the baseline) of this font and all fallback fonts.

Note: Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line).


int get_face_count() 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 🔗

Повертає назву стилю шрифту.


int get_font_weight() 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 <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.


Dictionary get_ot_name_strings() const 🔗

Повернення Dictionary з рядками імен верхнього шрифту OpenType (розмірні імена шрифтів, версія, опис, інформація про ліцензію, текст зразка тощо).


PackedColorArray get_palette_colors(index: int) const 🔗

Returns the array in the predefined color palette at index. Palette contains all colors used to render font glyphs. Each palette has the same number of colors. Colors can be overridden using FontVariation.


int get_palette_count() const 🔗

Returns the number of predefined color palettes. Palette contains all colors used to render font glyphs. Each palette has the same number of colors.


String get_palette_name(index: int) const 🔗

Returns the name of the predefined color palette at index. Palette contains all colors used to render font glyphs. Each palette has the same number of colors.


Array[RID] get_rids() const 🔗

Повертаємо вашу увагу на те, що TextServer діє 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().

Наприклад, щоб отримати розмір рядка, який відображається однорядковою міткою, використовуйте:

var string_size = $Label.get_theme_font("font").get_string_size($Label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, $Label.get_theme_font_size("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 🔗

Повертає список підтримуваних варіантних координат, кожна координата повертається як тег: 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()
для тегу в variation_list:
    var name = TextServerManager.get_primary_interface().tag_to_name(tag)
    var valve = variation_list[тег]
    print("вісь варіації: %s (%d)\n\tmin, max, за замовчуванням: %s" % [назва, тег, значення])

Примітка: щоб установити та отримати координати варіації 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 code).


bool is_script_supported(script: String) const 🔗

Повертає true, якщо шрифт підтримує заданий скрипт (як ISO 15924 code).


void set_cache_capacity(single_line: int, multi_line: int) 🔗

Комплекти для кешу LRU для Draw_*.