基于字形/字形的文本#
arcade.Text#
- class arcade.Text(text: str, start_x: float, start_y: float, color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 255, 255), font_size: float = 12, width: int = 0, align: str = 'left', font_name: Union[str, Tuple[str, ...]] = ('calibri', 'arial'), bold: bool = False, italic: bool = False, anchor_x: str = 'left', anchor_y: str = 'baseline', multiline: bool = False, rotation: float = 0)[源代码]#
一种面向对象的方式将文本绘制到屏幕上。
小技巧
在性能很重要的时候使用这个类!
不像
draw_text()
,这个类不会每次都浪费时间重新计算和重新设置任何文本。draw()
叫做。这使其速度更快,同时:需要您自己管理实例和绘制
使用可以忽略的额外内存
随着更多的文本需要被绘制到屏幕上,速度优势也会扩大。
构造函数参数的工作方式与
draw_text()
。有关如何使用它们的详细说明,请参阅其文档。有关代码示例,请参见 使用文本对象绘制 。- 参数
text (str) -- 要显示的初始文本。可以是空字符串
start_x (float) -- 文本锚点与之对齐的X位置
start_y (float) -- 文本锚点与之对齐的Y位置
color (Color) -- 文本的颜色为3(RGB)或4(RGBA)整数的元组或列表
font_size (float) -- 文本大小(以磅为单位)
width (float) -- 以像素为单位的宽度限制
align (str) -- 水平对齐;除“Left”以外的值需要设置宽度
font_name (Union[str, Tuple[str, ...]]) -- 字体名称、字体文件的路径或名称列表
bold (bool) -- 是否将文本绘制为粗体
italic (bool) -- 是否将文本绘制为斜体
anchor_x (str) -- 如何计算锚点的x坐标。选项:“左”、“中”或“右”
anchor_y (str) -- 如何计算锚点的y坐标。选项:“上”、“下”、“中”或“基线”。
multiline (bool) -- 需要设置宽度;启用自动换行而不是剪裁
rotation (float) -- 从水平方向逆时针旋转,以度为单位
以外的所有构造函数参数
text
具有相应的属性。若要访问当前文本,请使用value
属性而不是。默认情况下,文本的放置方式如下:
其边框的左边缘位于
start_x
它的基线是
start_y
基线位于文本底部所在的行上,不包括尾随字母,如y:
蓝线是字符串的基线
"Python"
#rotation
允许文本绕锚点旋转传递的度数。正值从水平方向逆时针旋转,而负值则顺时针旋转:围绕默认锚点旋转(
anchor_y="baseline"
和anchor_x="left"
)#- draw_debug(anchor_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 0, 0), background_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (0, 0, 139), outline_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 255, 255)) None [源代码]#
使用显示内容区域、轮廓和锚点的调试几何图形绘制测试。
- 参数
anchor_color (Color) -- 锚点的颜色
background_color (Color) -- 为内容背景上色
outline_color (Color) -- 内容轮廓的颜色
- property height: int#
获取或设置标签的高度(以像素为单位)。使用多行文本时,此值会影响文本流动。如果您要查找文本的物理大小,请参见
content_height
- property position: Union[Tuple[float, float], List[float]]#
元组形式的当前x,y位置。
这比分别设置x和y位置要快,因为底层几何体只需要更改一次位置。
- property size#
获取此标签的大小
- property width: int#
获取或设置标签宽度(以像素为单位)。使用多行文字时,此值会影响文字流动。如果您要查找文本的物理大小,请参见
content_width
arcade.draw_text#
- arcade.draw_text(text: Any, start_x: float, start_y: float, color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 255, 255), font_size: float = 12, width: int = 0, align: str = 'left', font_name: Union[str, Tuple[str, ...]] = ('calibri', 'arial'), bold: bool = False, italic: bool = False, anchor_x: str = 'left', anchor_y: str = 'baseline', multiline: bool = False, rotation: float = 0)[源代码]#
为初学者提供了一种绘制文本的简单方法。
使用此功能,您可以轻松开始绘制文本,其性能比旧的基于枕头的文本更好。如果您需要更高的性能,请考虑使用
Text
。示例代码可在以下位置找到 绘制文本 。
- 参数
text (Any) -- 要显示的文本。传入的对象将被转换为字符串
start_x (float) -- 文本锚点与之对齐的X位置
start_y (float) -- 文本锚点与之对齐的Y位置
color (Color) -- 文本的颜色为3(RGB)或4(RGBA)整数的元组或列表
font_size (float) -- 文本大小(以磅为单位)
width (float) -- 以像素为单位的宽度限制
align (str) -- 水平对齐;除“Left”以外的值需要设置宽度
font_name (Union[str, Tuple[str, ...]]) -- 字体名称、字体文件的路径或名称列表
bold (bool) -- 是否将文本绘制为粗体
italic (bool) -- 是否将文本绘制为斜体
anchor_x (str) -- 如何计算锚点的x坐标
anchor_y (str) -- 如何计算锚点的y坐标
multiline (bool) -- 需要设置宽度;启用自动换行而不是剪裁
rotation (float) -- 从水平方向逆时针旋转,以度为单位
默认情况下,文本的放置方式如下:
其边框的左边缘位于
start_x
它的基线是
start_y
文本的基线是要在其上书写的行:
蓝线是字符串的基线
"Python"
#font_name
可以是以下任一项:控件中的内置字体 内置资源
系统字体的名称
指向系统上字体的路径
一个 tuple 包含前三个元素的任意组合
将按顺序尝试提供的每个条目,直到找到一个条目。如果未找到任何字体,则将选择默认字体(通常为Arial)。
anchor_x
和anchor_y
指定如何计算锚点,这会影响文本的显示方式:相对于放置的位置
start_x
和start_y
已旋转
默认情况下,文本的绘制方式是
start_x
位于文本边框的左侧,并且start_y
是在基线上。您可以通过将下列值的组合传递给
anchor_x
和anchor_y
:允许的值 anchor_x
#字符串值
实际效果
锚定位置
"left"
(default)左侧绘制的文本位于
start_x
文本边框左侧的锚点
"center"
水平居中绘制的文本
start_x
文本边框水平中心的锚点
"right"
使用右侧绘制的文本位于
start_x
放置在文本边框右侧的锚点
允许的值 anchor_y
#字符串值
实际效果
锚定位置
"baseline"
(default)启用基线时绘制的文本
start_y
。放置在文本呈现基线上的锚点
"top"
顶部对齐的绘制文本
start_y
放置在文本顶部的锚点
"bottom"
绘制的文本的绝对底部对齐
start_y
,包括y和g等字母的尾部空格放置在文本底部的锚点,位于分配给y和g等字母的空格之后
"center"
垂直居中绘制的文本
start_y
放置在文本垂直中心的锚点
rotation
允许文本绕锚点旋转传递的度数。正值从水平方向逆时针旋转,而负值则顺时针旋转:围绕默认锚点旋转(
anchor_y="baseline"
和anchor_x="left"
)#将此函数理解为如下工作方式可能会有所帮助:
计算文本布局和对齐方式:
文本的字符根据当前样式选项在边界框中进行布局
文本上的锚点是根据文本值、样式以及
anchor_x
和anchor_y
文本被放置,以使其锚点位于
(start_x, start_y))
文本在最终绘制之前围绕其锚点旋转
此函数的效率低于使用
Text
因为每次调用时都可以重复上面的一些步骤,而不是像对类那样完全缓存。
arcade.load_font#
- arcade.load_font(path: Union[str, pathlib.Path]) None [源代码]#
将字体加载到文件(通常为.ttf)中,并将其添加到全局字体注册表。
一个文件可以包含一种或多种字体。每种字体都有一个名称。打开字体文件以找到实际名称。这些名称用于在绘制文本时选择字体。
示例:
# Load a font in the current working directory # (absolute path is often better) arcade.load_font("Custom.ttf") # Load a font using a custom resource handle arcade.load_font(":font:Custom.ttf")
- 参数
font_name --
- 引发
FileNotFoundError -- 如果未找到指定的字体
- 返回