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)。

  1. var dynamic_font = DynamicFont.new()
  2. dynamic_font.font_data = load("res://BarlowCondensed-Bold.ttf")
  3. dynamic_font.size = 64
  4. $"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,单位为像素(与字体大小无关)。