DynamicFont

Inherits: Font < Resource < Reference < Object

DynamicFont 在运行时渲染矢量字体文件。

描述

DynamicFont 在运行时动态渲染矢量字体文件,而不是像 BitmapFont 那样使用预渲染的纹理图集。通过放弃 BitmapFont 更快的加载时间,换取在运行时改变字体大小和间距等参数的能力。使用 DynamicFontData 引用字体文件路径。DynamicFont 还支持定义若干备用字体,这些字体将在主字体不支持显示某个字符时使用。

DynamicFont 使用 FreeType 库进行光栅化处理。支持的格式有 TrueType(.ttf)、OpenType(.otf)和 Web Open Font Format 1(.woff)。不支持 Web Open Font Format 2(.woff2)。

var dynamic_font = DynamicFont.new()
dynamic_font.font_data = load("res://BarlowCondensed-Bold.ttf")
dynamic_font.size = 64
$"Label".set("custom_fonts/font", dynamic_font)

注意:DynamicFont 尚不支持字偶距、从右到左的排版、合字、文本变形、可变字体和可选字体等功能。如果你想把可选的字体功能“烘焙”进一个 TTF 字体文件,可以使用 FontForge。在 FontForge 中,使用文件 > 生成字体,点击选项,选择需要的功能,然后生成字体。

教程

属性

int

extra_spacing_bottom

0

int

extra_spacing_char

0

int

extra_spacing_space

0

int

extra_spacing_top

0

DynamicFontData

font_data

Color

outline_color

Color( 1, 1, 1, 1 )

int

outline_size

0

int

size

16

bool

use_filter

false

bool

use_mipmaps

false

方法

void

add_fallback ( DynamicFontData data )

String

get_available_chars ( ) const

DynamicFontData

get_fallback ( int idx ) const

int

get_fallback_count ( ) const

int

get_spacing ( int type ) const

void

remove_fallback ( int idx )

void

set_fallback ( int idx, DynamicFontData data )

void

set_spacing ( int type, int value )

枚举

enum SpacingType:

  • SPACING_TOP = 0 --- 顶部间距。

  • SPACING_BOTTOM = 1 --- 底部间距。

  • SPACING_CHAR = 2 --- 每个字符的间距。

  • SPACING_SPACE = 3 --- 空格字符的间距。

属性说明

  • int extra_spacing_bottom

Default

0

Setter

set_spacing(value)

Getter

get_spacing()

底部的额外间距,单位为像素。


  • int extra_spacing_char

Default

0

Setter

set_spacing(value)

Getter

get_spacing()

每个字符的额外间距,单位为像素。

这可以是负数,使字符之间的距离更小。


  • int extra_spacing_space

Default

0

Setter

set_spacing(value)

Getter

get_spacing()

空格字符的额外间距,单位是像素,除了extra_spacing_char

这可以是负数,使字符之间的距离更小。


  • int extra_spacing_top

Default

0

Setter

set_spacing(value)

Getter

get_spacing()

顶部的额外间距,单位为像素。


Setter

set_font_data(value)

Getter

get_font_data()

字体数据。


Default

Color( 1, 1, 1, 1 )

Setter

set_outline_color(value)

Getter

get_outline_color()

字体轮廓的颜色。

注意:建议将此值保留为默认值,以便您可以在各个控件中对其进行调整。例如,如果在此处将轮廓设为黑色,则无法使用Label的字体轮廓调制主题项来更改其颜色。


  • int outline_size

Default

0

Setter

set_outline_size(value)

Getter

get_outline_size()

字体轮廓的厚度,单位为像素(与字体大小无关)。


Default

16

Setter

set_size(value)

Getter

get_size()

字体大小,单位为像素。


Default

false

Setter

set_use_filter(value)

Getter

get_use_filter()

true 时将使用过滤功能。如果字体过度采样被禁用或无效,这将使字体在缩放时变得模糊,而非像素化。当在尺寸随时变化的控件中使用字体时,建议启用这个功能,除非是像素设计。


Default

false

Setter

set_use_mipmaps(value)

Getter

get_use_mipmaps()

true 时将使用多级渐远纹理。在字体过度采样被禁用或无效时,可改善字体缩小时的表现。

方法说明

添加一个后备字体。


  • String get_available_chars ( ) const

返回一个包含主字体和后备字体中所有可用字符的字符串。

如果多个字体中包含同一个字符,那么它在返回的字符串第一次出现的位置。


返回位于索引idx处的后备字体。


  • int get_fallback_count ( ) const

返回后备字体的数量。


  • int get_spacing ( int type ) const

返回给定type的间距(参阅SpacingType)。


  • void remove_fallback ( int idx )

移除位于索引idx处的后备字体。


设置索引idx处的后备字体。


  • void set_spacing ( int type, int value )

type设置间距(参阅SpacingType)为value,单位为像素(与字体大小无关)。