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