【pygame】font 模块

Pygame 教程(4):图像传输和绘制文本 阅读详情

pygame.font
Pygame 中加载和表示字体的模块。

函数
pygame.font.init() —— 初始化字体模块
pygame.font.quit() —— 还原字体模块
pygame.font.get_init() —— 检查字体模块是否被初始化
pygame.font.get_default_font() —— 获得默认字体的文件名
pygame.font.get_fonts() —— 获取所有可使用的字体
pygame.font.match_font() —— 在系统中搜索一种特殊的字体
pygame.font.SysFont() —— 从系统字体库创建一个 Font 对象
类
pygame.font.Font —— 从一个字体文件创建一个 Font 对象
字体模块可以在一个新的 Surface 对象上表示 TrueType 字体。它接受所有 UCS-2 字符(‘u0001’ 到 ‘uFFFF’)。此模块为可选择模块,并且依赖于 SDL_ttf。在使用之前,你需要先测试该模块是否可用,而且对其进行初始化。

通过使用现有的 Font 对象,可以完成大多数与字体有关的工作。Pygame.font 模块自身仅可以完成常规的初始化以及通过 pygame.font.Font() 创建 Font 对象。

你可以通过使用 pygame.font.SysFont() 函数从系统内加载字体。另外还有其他几个函数可以帮助你搜索系统的字体。

Pygame 配备了内建的默认字体。通过传递 “None” 为文件名访问此字体。

在 pygame 第一次导入之前,当pygame.font 模块确定环境变量 PYGAME_FREETYPE 时使用基于 pygame.ftfont 的 pygame.freetype 模块。 Pygame.ftfont 是一个pygame.font 可兼容模块,兼容绝大部分,除开其中某个字体模块单元测试:Pygame.ftfont 并没有基于字体模块的 SDL_ttf 的 UCS-2 字符限制,所以对于大于 ‘uFFFF’ 的码点会产生异常。如果 pygame.freetype 是不可使用的,那么 SDL_ttf 字体模块将会被加载用于替代。

函数详解

pygame.font.init() 初始化字体模块

init() -> None

在调用 pygame.init() 时,该函数会被自动调用。

该函数用于初始化字体模块。在使用其他任何函数前,该模块必须被初始化。

多次调用该函数是安全的。

pygame.font.quit() 还原字体模块

quit() -> None

手动还原 SDL_ttf 的字体系统。该函数会被 pygame.quit() 自动调用。

即使模块没有被初始化,调用该函数也是安全的。

pygame.font.get_init() 检查字体模块是否被初始化

get_init() -> bool

如果该字体模块已经初始化,返回 True,否则返回 False。

pygame.font.get_default_font() 获得默认字体的文件名

get_default_font() -> string

返回系统字体的文件名。

注意,并不是字体文件的完整路径。

这个文件通常与字体模块处于同一文件目录下,但是它也可以在程序附随的独立文档中。

pygame.font.get_fonts() 获取所有可使用的字体

get_fonts() -> list of strings

返回系统可使用的字体列表。

字体名将会被设置成小写、所有的空格和标点符号也会将被删除。

该函数在大多数系统内是有效的,但是一些系统如果没有找到字体库会返回一个空的列表。

pygame.font.match_font() 在系统中搜索一种特殊的字体

match_font(name, bold=False, italic=False) -> path

返回字体文件在系统中的完整路径。

如果你要搜索的字体是粗体或者斜体的,则要把 bold 参数和 italic 参数设置成 True,该函数将会尝试去搜索一个正确的字体族。

尝试搜索的 name 参数可以是一个用逗号隔开的列表。如果根据提供的名字没有找到任何东西,则返回 None 。

pygame.font.SysFont() 从系统字体库创建一个 Font 对象

SysFont(name, size, bold=False, italic=False) -> Font

从系统字体库中加载并返回一个新的字体对象。

该字体将会匹配 bold(加粗)和 italic(斜体)参数的要求。

如果找不到一个合适的系统字体,该函数将会回退并加载默认的 pygame 字体。

尝试搜索的 name 参数可以是一个用逗号隔开的列表。

类 class pygame.font.Font

从一个字体文件创建一个 Font 对象。

Font(filename, size) -> Font

Font(object, size) -> Font

方法
pygame.font.Font.render() —— 在一个新 Surface 对象上绘制文本
pygame.font.Font.size() —— 确定多大的空间用于表示文本
pygame.font.Font.set_underline() —— 控制文本是否用下划线渲染
pygame.font.Font.get_underline() —— 检查文本是否绘制下划线
pygame.font.Font.set_bold() —— 启动粗体字渲染
pygame.font.Font.get_bold() —— 检查文本是否使用粗体渲染
pygame.font.Font.set_italic() —— 启动斜体字渲染
pygame.font.Font.metrics() —— 获取字符串参数每个字符的参数
pygame.font.Font.get_italic() —— 检查文本是否使用斜体渲染
pygame.font.Font.get_linesize() —— 获取字体文本的行高
pygame.font.Font.get_height() —— 获取字体的高度
pygame.font.Font.get_ascent() —— 获取字体顶端到基准线的距离
pygame.font.Font.get_descent() —— 获取字体底端到基准线的距离

根据提供的文件名或者 python 文件对象加载一个新的字体。字体的高度是以像素为单位。如果文件名是 “None”,则加载 Pygame 的默认字体。如果一个字体无法由给定的参数加载,将会产生一个异常。一旦字体已经创建完毕,那么字体的尺寸将不能修改。

字体对象主要被用于在新 Surface 对象中渲染文本。文本可以渲染为仿真的粗体或者斜体特征,但最好是加载的字体本身就带有粗体或者斜体字形。可以用普通字符串或者 Unicode 编码字符来渲染文本。

pygame.font.Font.render() 在一个新 Surface 对象上绘制文本

render(text, antialias, color, background=None) -> Surface

该函数创建一个新的 Surface 对象,并在上边渲染指定的文本。Pygame 没有提供直接的方式在一个现有的 Surface 对象上绘制文本,取而代之的方法是:使用 Font.render() 函数创建一个渲染了文本的图像(Surface 对象),然后将这个图像绘制到目标 Surface 对象上。

仅支持渲染一行文本:“换行”字符不会被渲染。空字符(‘x00’)被渲染将产生一个 TypeError 错误。Unicode 和 char(字节)字符串都可以被接受。对于 Unicode 字符串,仅 UCS-2 字符范围(‘u0001’ 到 ‘uFFFF’)被认为是有效的。任何编码值更大字符的字符会产生一个 UnicodeError 的错误;对于 char 字符串,默认的是使用 LATIN1 编码。color 参数决定的是文本的颜色(例如:(0, 0, 255) 表示蓝色)。可选参数 background 决定了文本的背景颜色。如果没有传递 background 参数,则对应区域内表示的文本背景将会被设置为透明。

返回的 Surface 对象将保持表示文本所需要的尺寸(与 Font.size() 所返回的尺寸相同)。如果将一个空字符串渲染为文本,将会返回一个空白 Surface 对象,它仅有一个像素点的宽度,但高度与字体高度一样。

由于取决于文本背景的类型和抗锯齿功能的使用,该函数将会返回不同类型的 Surface 对象。出于性能上的考虑,了解何种类型的图像会被使用是很有帮助的:如果抗锯齿功能没有被使用,返回的图像将采用二元调色的 8 位图像。此时如果背景是透明的,只设置一个 colorkey 来实现;抗锯齿图像会被渲染为 24 位 RGB 图像。此时如果背景是透明的,每个像素都将包含一个 alpha 通道。

优化:如果你已知文本最终将绘制在一个纯色的背景上,那么文本是抗锯齿的,你可以通过指定文本的背景色来提高性能(将文本背景色设置目标 Surface 对象的颜色)。使用这个技巧,你只需用一个 colorkey 即可保持透明信息,而不需要设置每个像素的 alpha 通道值(这样效率会低很多)。

如果你尝试渲染 ‘\n’,通常是显示为一个矩形(未知字符)。因此,你需要自己想办法处理换行。

字体渲染并不是线程安全的行为:在任何时候仅有一个线程可以渲染文本。

pygame.font.Font.size() 确定多大的空间用于表示文本

size(text) -> (width, height)

该函数返回渲染文本所需要的尺寸。这可以被用于在文本显示之前,确定文本的显示位置。当然也有助于实现自动换行和其他布局效果。

注意:大多数字体使用字距调整来调整指定字母间的宽度。例如,“ae” 的宽度并不总是等同于 ‘a’ + ‘e’ 的宽度。

pygame.font.Font.set_underline() 控制文本是否用下划线渲染

set_underline(bool) -> None

启用后,所有字体的渲染都会包含下划线。下划线一般是和一个像素点一样细,与字体尺寸无关。

该函数可以与粗体和斜体模式混合使用。

pygame.font.Font.get_underline() 检查文本是否绘制下划线

get_underline() -> bool

如果字体下划线被启用,返回 True。

pygame.font.Font.set_bold() 启动粗体字渲染

set_bold(bool) -> None

该函数启用文本的粗体渲染。该函数是通过虚拟拉伸实现加粗,对大多数字体格式来说并不是很好看。如果可能,请加载真粗体格式的字体文件。当渲染的字体为粗体时,该字体将比普通模式下更宽一些。

该函数可以和斜体及下划线模式混合使用。

pygame.font.Font.get_bold() 检查文本是否使用粗体渲染

get_bold() -> bool

如果字体的粗体渲染模式被启用,返回 True。

pygame.font.Font.set_italic() 启动斜体字渲染

set_italic(bool) -> None

该函数启用文本的斜体渲染。该函数是通过虚拟倾斜字体实现斜体,对大多数字体格式来说并不是很好看。如果可能,请加载真斜体格式的字体文件。当渲染的字体为斜体时,该字体将比普通模式下更宽一些。

该函数可以和粗体及下划线模式混合使用。

pygame.font.Font.metrics() 获取字符串参数每个字符的参数

metrics(text) -> list

返回一个列表,包含每个字符的属性元组。形式如:[(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), …]
列表内不可识别的字符对应的元组内参数均为 None。

pygame.font.Font.get_italic() 检查文本是否使用斜体渲染

get_italic() -> bool

如果字体的斜体渲染模式被启用,返回 True。

pygame.font.Font.get_linesize() 获取字体文本的行高

get_linesize() -> int

返回该字体下文本的单行的高度(以像素为单位)。

当需要渲染很多行文本时,推荐使用该返回值作为行间距。

pygame.font.Font.get_height() 获取字体的高度

get_height() -> int

返回实际渲染的文本的高度(以像素为单位)。

返回值是字体内每个字符的平均规格。

pygame.font.Font.get_ascent() 获取字体顶端到基准线的距离

get_ascent() -> int

获取字体顶端到基准线的距离(以像素为单位)。

pygame.font.Font.get_descent() 获取字体底端到基准线的距离

get_descent() -> int

获取字体底端到基准线的距离(以像素为单位)

使用Pygame显示文字的示例代码 然后,使用screen.fill()方法将屏幕填充为黑色,以清空之前的内容。接下来,使用screen.blit()方法将文字表面绘制到屏幕的指定位置(这里是(200, 200))。接着,使用pygame.font.SysFont()函数创建了一个系统默认字体对象,并设置字号为48。"渲染成一个表面(Surface),并指定文字颜色为白色。你可以根据需要修改文字内容、字体、位置和窗口尺寸等参数,以实现不同的文字显示效果。首先,通过导入pygame和sys模块并初始化Pygame,创建一个窗口并设置窗口标题。 阅读详情

相关推荐

Pygame Font模块深度解析:从字体加载到高级渲染与性能优化

在游戏开发与图形界面应用中,文本渲染是信息传达的核心技术。其原理涉及字体文件的解析、字形光栅化及像素合成,最终生成可在屏幕上绘制的图像表面。掌握文本渲染技术对于提升应用的专业性和用户体验至关重要,尤其在游戏UI、数据可视化及交互式应用等场景中。本文聚焦于Pygame的Font模块,针对开发中常见的字体加载失败、文本渲染模糊及性能瓶颈等痛点,深入剖析了字体加载的路径管理与兼容性、抗锯齿渲染的性能权衡、以及通过字体缓存与预渲染策略优化性能。通过解析这些核心概念与实践,旨在帮助开发者高效驾驭文字显示,为项目注入更

weixin_30832405的博客 372

Pygame Font文本和字体(含示例)

Pygame Font文本和字体(含示例) 文本是任何一款游戏中不可或缺的重要要素之一,Pygame 通过pygame.font模块来创建一个字体对象,从而实现绘制文本的目的。该模块的常用方法如下所示: 方法 说明 pygame.font.init() 初始化字体模块 pygame.font.quit() 取消初始化字体模块 pygame.font.get_init() 检查字体模块是否被初始化,返回一个布尔值。 pygame.font.get_default_font() 获得默认字体的文件名。返回

ccc369639963的博客 7658

使用Pygame库来自定义字体

Pygame是一个功能强大的Python游戏开发库,它不仅仅适用于游戏开发,还可以用于创建各种图形应用程序。在Pygame中,你可以使用不同的字体样式来美化你的文字。接下来,我们初始化Pygame库,并创建一个屏幕窗口,设置窗口的尺寸并为窗口设置标题。最后,我们进入游戏的主循环,监听退出事件,如果用户点击了窗口的关闭按钮,则退出游戏。运行上述代码,你将看到一个居中显示的自定义字体的文字。接下来,我们定义了要显示的文字内容和文字的颜色。然后,我们定义了一个字体文件的路径,你需要将。获取文字的宽度和高度。

IjnDebug的博客 245

Pygame详解(五):font 模块

pygame.font Pygame 中加载和表示字体的模块。 函数 pygame.font.init()  ——  初始化字体模块 pygame.font.quit()  ——  还原字体模块 pygame.font.get_init()  ——  检查字体模块是否被初始化 pygame.font.get_default_font()  ——  获得默认字体的文件名 pygame....

来自江南的你的博客 5万+

Pygame 基础教程06: 字体模块(font) 与 文本绘制

pygame.font 模块用于加载和渲染字体。字体模块允许将 TrueType 字体渲染到 Surface 对象中。该模块建立在 SDL_ttf 库之上。大多数使用字体完成的工作都是通过使用实际的 pygame.font.Font 对象完成的。要绘制字体,就必须先有一个字体文件。可以使用 pygame.font.get_fonts() 函数获取当前系统所支持的字体。

谢TS的博客 851

UE4-(反射)场景采集之场景采集2D

一、场景采集分为两种:场景采集2D、场景采集立方体 场景采集2D:采集2D图片模式。 操作: 1.选择场景采集2D,是一个摄像机的物体,摆放到场景中。 2.在文件夹空白处创建纹理,一定要注意创建纹理的格式, 纹理分为立方体渲染目标和渲染目标,此处我们使用的是2D模式,所以选择渲染目标(Texture Render Target2D)。创建后重命名为RenderTextue2D。 3.选择场景中刚拖入的 SceneCapture2D 摄像机在细节面板的Scene Capture 将..

Stone的博客 4601

pygame之font模块

                      font-用于加载和渲染字体的Pygame模块 pygame.font.init—初始化字体模块 pygame.font.quit—取消初始化字体模块 pygame.font.get_init—如果字体模块已初始化,则为true pygame.font.get_default_font—获取默认字体的文件名 pygame.font.get_fo...

河间老王的博客 5618

【DDSCAT——离散偶极近似仿真程序05】模型设计Matlab代码:多核壳球 、多核壳圆柱

简洁明了,后面及部分给出的都是模型设计的Matlab代码,这些代码都来自于一篇文章:Chin C W S. Localized Surface Plasmon Resonance with the use of Silver and Titanium Oxide Nanostructures[J]. 2011. 一、设计多个核壳球形结构 1)Matlab代码 ...

XD_Yangf的博客 4256

Pygame编程(9)font模块

【代码】Pygame编程(8)font模块。

若有博文对您有帮助,欢迎点赞关注,收藏评论。 917

QTableView实现表格加载百万条数据

本文介绍用QTableView实现加载100万条数据显示到表格。 1.创建工程 用Qt Creator创建Qt Widgets Application项目,基类选择QWidget,创建好了,如图: 2.添加QTableView控件 在widget.ui中添加QTableView控件,和QPushButton,采用栅格布局,如图: 3.添加函数 头文件 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Wid

丁爸的博客 8270

3DGS实战避坑指南:从零搭建到成功训练

本文详细介绍了3D Gaussian Splatting(3DGS)从环境配置到成功训练的实战避坑指南。涵盖git clone的正确使用、依赖安装的隐藏陷阱、CUDA版本兼容性解决方案、首次训练验证、常见报错急救方案、性能优化技巧及可视化调试方法,帮助开发者高效搭建和训练3DGS模型。

weixin_29053383的博客 365

pygame编程之font模块

方法一:pygame.font.Font(file, size=-1) 参数file:采用字体文件的路径,如果file参数设置为None则默认采用系统自带字体,如果自带字体文件无法打开就会报错;   参数size:字体的大小 返回值:返回一个特定字体对象,可使用该特定字体去定义文本 例如: font_size = 60 my_font = pygame.fon...

weixin_30950607的博客 624

Multisim14.0仿真(五十九)基于74LS161的24进制计数器应用设计

它具有同步预置、异步清零功能,支持并行数据加载,并可在计数使能控制下进行二进制计数。:低电平时,在下一个时钟上升沿加载输入数据(A, B, C, D)。(多个 74LS161D 串联构成 8 位、12 位等更长计数器)。低电平时,下一个时钟上升沿加载输入数据(A, B, C, D)。:低电平有效,立即清零计数器(不受时钟控制)。均为高电平时,每个时钟上升沿计数。:两者均为高电平时,计数器才能递增。:立即清零计数器(不受时钟控制)。(通过预置初始值控制计数范围)。(计数范围:0 ~ 15,即。

corlin6688的博客 4759

pygame中font模块方法详解

系统方法 pygame.font.init() 功能:初始化字体模块 属性:init() -> None 此方法由pygame.init()自动调用,初始化字体模块。在任何其他函数工作之前,必须初始化模块。 多次调用此函数是安全的。 pygame.font.quit() 功能:取消字体模块的初始化 属性:quit() -> None 手动取消初始化 SDL_ttf 的字体系统,由pygame.quit()自动调用。 即使字体当前未初始化,也可以安全地调用此函数。 pygam..

Rita_Aloha的博客 1万+

增益调度控制 —— 理论、案例与交互式 GUI 实现

本文详细介绍了增益调度控制的基本原理、数学模型及公式推导,探讨了该方法在适应非线性系统和大范围工作条件下的优势与局限。通过航空飞行控制、发动机推力控制以及化工过程控制三个典型案例,我们展示了如何利用调度变量动态调整控制增益,从而使得控制系统在各个工作点均能达到优良性能。为帮助工程师和研究者更直观地理解并验证增益调度控制的实际效果,本文提供了一套基于 Python 与 PyQt6 的交互式 GUI 控制系统代码。用户不仅可以实时查看仿真数据,还能通过在线调节参数直观体验调度控制的优势。

闲人编程的博客 1480

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

算法如诗的博客 153

编译pygame的font模块

之前的文章,只编译了基本的模块,这些模块只依赖于SDL.dll。这次,首先要编译Font模块。 Font模块依赖于freetype开源库。下载这个库后,发现已经包含对CE的支持,但是没有evc4的工程文件,因此,建了一个。(debug版本Link的时候有错误,直接编译release即可) 相关的目录需要手工修改一下。(必须把freetype/include加到全局的include中) ...

tailorcai 368

【图像去噪】基于梯度为0法实现图像去噪附matlab代码

近几年,徐立提出的 L0 梯度最小化模型在图像平滑领域得到了广泛的应用和发展[11]. 和以往的局部滤波模型不同的是该模型可以全局的估计图像的像素值,因此,L0 梯度最小化模型在处理图像的同时能够很好的保护图像的边缘.​。

qq_59747472的博客 184

pygame使用anaconda安装找不到font模块的问题

在两个电脑上都尝试安装过,遇到的同样的问题,但是两台电脑的解决方法不一样 谷歌搜索pygame anaconda font module not available,可以得到一些链接,下面这个链接说的比较正确 http://stackoverflow.com/questions/36364327/pygame-on-ubuntu-importerror-no-module-named-font

edward_d_jj的博客 3740

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Pygame常用模块

除了上述常用的模块,Pygame还有许多其他模块和工具可供使用,如pygame.transform模块用于图像变换、pygame.math模块用于数学计算等。该模块还提供了一些功能来控制声音的音量、循环播放等设置,使得游戏的音效更加完善和真实。通过这个模块,你可以创建一个图形界面,并将游戏中的角色、背景等元素显示在屏幕上。通过该模块,你可以创建精灵,设置它们的初始位置和运动方式,并且处理它们之间的碰撞和交互。该模块还提供了一些功能来设置字体样式、大小和颜色,使得游戏中的文本更加美观和吸引人。

m0_70911440的博客 1434

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

pygame中的特殊对象与模块

“sprite”,中文翻译“精灵”,在游戏动画一般是指一个独立运动的画面元素,在pygame中,就可以是一个带有图像(Surface)和大小位置(Rect)的对象。 作用:操作移动图像

Rita_Aloha的博客 1700

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Pygame 官方文档 - pygame.font

pygame.font Pygame 中加载和表示字体的模块。 pygame.font.init() —— 初始化字体模块 pygame.font.quit() —— 还原字体模块 pygame.font.get_init() —— 检查字体模块是否被初始化 pygame.font.get_default_font() —— 获得默认字体的文件名 pygame.font.get_f...

Enderman_xiaohei的博客 6075

pygame文档学习之font

font模块是pygame中加载和渲染字体的地方。font模块允许把TrueType字体渲染成Surface对象。大多数使用字体的工作都是通过使用实际的字体对象来完成的。这个模块本身只有一些例程来支持用pygame.font.Font()创建一个新的字体对象。我们可以从系统加载字体,然后用 pygame.font.SysFont() 函数把它渲染为字体对象。pygame的默认字体是freesansbold.ttf,这总是能通过传递None作为字体名称来访问它。

2401_87006911的博客 2932

python中pygame是个什么模块_Pygame的几个模块

这篇博客主要是从功能上介绍几个Pygame的模块,没有深入到代码细节。大部分内容来自《Python基础教程》。pygamepygame模块会自动导入其他Pygame模块,所以如果用了 import pygame,就能自动访问其他模块,比如pygame.display等。pygame模块包括Surface函数(和一些其他工具),它可以返回一个新的Surface对象。Surface对象就是一个有确定尺...

weixin_39551462的博客 2112

pygame中模块说明

pygame模块概览 1.display模块 功能:生成windows窗口 pygame.display.set_mode(resolution=(0,0),flags=0,depth=0) 返回一个特定大小和属性的surface对象,resolution可以控制生成windows窗口的大小,flags代表的是扩展选项,depath不推荐设置 flags标志位控制你想要什么样的显示屏,主要有下面几个,这几个量相当于是全局的常量,使用的时候可以from pygame.locals import *导入 pyg

aben_200811的博客 2902
上一篇: 【pygame】Rect对象
下一篇: 【pygame杂记】字体相关
熟练的魔法师
博客等级 码龄8年 2714粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值