pyglet.resource
从已知路径加载应用程序资源。
在Python中,通过指定文件名的相对路径来加载资源通常是有问题的,因为工作目录不一定与应用程序的脚本文件的目录相同。
此模块允许应用程序指定资源的搜索路径。相对路径被认为是相对于应用程序的 __main__
module. Zip文件可以出现在路径上;将在内部搜索它们。 当使用Pyterfly、Nuitka、py 2app等冷冻机捆绑应用程序时,资源模块的行为也会符合预期。
除了提供文件引用(使用 file()
函数),资源模块还包含用于加载图像、纹理、字体、媒体和文档的便利函数。
未绑定到特定应用程序的第三方模块或包应构建自己的模块或包 Loader
实例并重写路径以使用模块目录中的资源。
路径格式
资源路径 path
(另见 Loader.__init__()
和 Loader.path()
)是搜索资源的位置列表。按照路径中给出的顺序搜索位置。如果位置无效(例如,如果目录不存在),则跳过该位置。
路径中以“at”符号(‘’@‘’)开头的位置指定了Python包。其他位置指定文件系统上的ZIP存档或目录。不是绝对的位置被假定为相对于脚本Home。以下是一些示例:
# Search just the `res` directory, assumed to be located alongside the
# main script file.
path = ['res']
# Search the directory containing the module `levels.level1`, followed
# by the `res/images` directory.
path = ['@levels.level1', 'res/images']
路径始终是 case-sensitive 和 forward slashes are always used 作为路径分隔符,即使在文件系统或平台不这样做的情况下也是如此。这避免了在平台之间移植应用程序时常见的程序员错误。
默认路径为 ['.']
。如果修改路径,则必须调用 reindex()
。
- exception ResourceNotFoundException
在搜索路径上找不到命名的资源。
- __init__(name)
- exception UndetectableShaderType
无法识别Shader源的类型。
- __init__(name)
- class FileLocation
文件系统上的位置。
- class Loader
从磁盘加载程序资源文件。
加载程序包含一个搜索路径,其中可以包括文件系统目录、Zip存档、URL和Python包。
- __init__( ) None
为给定路径创建加载器。
如果未指定路径,则默认为
['.']
;也就是说,只是程序目录。有关路径格式的详细信息,请参阅模块文档。
- add_font(filename: str) None
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用
font.load
.尽管使用此函数添加字体及其文件名,但始终通过指定字体的族名来加载字体。例如::resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 返回类型:
- animation( ) Animation
加载带有可选变换的动画。
从相同来源加载但具有不同变换的动画将使用相同的纹理。
- attributed(name: str) AbstractDocument
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 返回类型:
- get_texture_bins() list[TextureBin]
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型:
- html(name: str) AbstractDocument
加载一个HTML文档。
- 返回类型:
- image(
- name: str,
- flip_x: bool = False,
- flip_y: bool = False,
- rotate: int = 0,
- atlas: bool = True,
- border: int = 1,
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
(TextureAtlas)如果其尺寸适合包装。这比将图像加载到单独的纹理中更有效。- 参数:
- 返回类型:
备注
使用时
flip_x/y
或rotate
,实际图像数据不会被修改。相反,操纵纹理坐标以产生所需的结果。
- location(
- filename: str,
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 返回类型:
FileLocation
|URLLocation
|ZIPLocation
- media(name: str, streaming: bool = True) Source
加载声音或视频资源。
的含义
streaming
是为了load()
.无法流式传输压缩源(即,无法从Zip存档中流式传输视频和压缩音频)。
- model( ) Model
加载3D模型。
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法
resource.path
更改,或者文件系统布局更改。
- shader( ) Shader
加载Shader对象。
- text(name: str) AbstractDocument
加载纯文本文档。
- 返回类型:
- class Location
抽象资源位置。
在给定位置的情况下,可以使用
open()
法这提供了一种方便的方法来指定加载文件的路径,即使该路径不驻留在文件系统上也是如此。
- class URLLocation
网络上的位置。
此类使用
urllib
模块打开网络上的文件,给出基本URL。
- class ZIPLocation
ZIP文件中的位置。
- add_font(filename: str) None
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用
font.load
.尽管使用此函数添加字体及其文件名,但始终通过指定字体的族名来加载字体。例如::resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 返回类型:
- animation( ) Animation
加载带有可选变换的动画。
从相同来源加载但具有不同变换的动画将使用相同的纹理。
- attributed(name: str) AbstractDocument
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 返回类型:
- get_data_path(name: str) str
获取用于保存用户数据的目录。
对于基于Posix或Linux的系统,许多发行版都有一个单独的目录来存储特定应用程序的用户数据,并且此函数返回该位置的路径。
在Linux上,一个目录
name
在用户的数据目录中返回(通常在~/.local/share
)。在Windows上(包括在Cygwin下)
name
用户的目录中Application Settings
返回目录。On Mac OS X the
name
directory under~/Library/Application Support
is returned. :rtype:str
备注
此函数不执行任何目录创建。用户应使用
os.path.exists
和os.makedirs
如果需要,可以构建目录。
- get_script_home() str
获取包含程序条目模块的目录。
对于普通的Python脚本,这是包含
__main__
module.对于已与Pyterm、Nuitka等捆绑的应用程序,这可能是捆绑包路径或临时目录。如果上述情况均不适用,且
__main__
无法确定是否返回了工作目录。当Python分析器运行脚本时,此函数可能会返回分析器运行的目录,而不是真实脚本的目录。为了解决这种行为,可以在中指定真正脚本的完整路径
pyglet.resource.path
。- 返回类型:
- get_settings_path(name: str) str
获取目录路径以保存用户首选项。
不同的平台对于保存用户首选项和设置的位置有不同的约定。此函数实现如下所述的这些约定,并返回完全形成的路径。
在Linux上,一个目录
name
在用户的配置目录中返回(通常在~/.config
)。在Windows上(包括在Cygwin下)
name
用户的目录中Application Settings
返回目录。On Mac OS X the
name
directory under~/Library/Application Support
is returned. :rtype:str
备注
此函数不执行任何目录创建。用户应使用
os.path.exists
和os.makedirs
如果需要,可以构建目录。
- get_texture_bins() list[TextureBin]
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型:
- html(name: str) AbstractDocument
加载一个HTML文档。
- 返回类型:
- image(
- name: str,
- flip_x: bool = False,
- flip_y: bool = False,
- rotate: int = 0,
- atlas: bool = True,
- border: int = 1,
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
(TextureAtlas)如果其尺寸适合包装。这比将图像加载到单独的纹理中更有效。- 参数:
- 返回类型:
备注
使用时
flip_x/y
或rotate
,实际图像数据不会被修改。相反,操纵纹理坐标以产生所需的结果。
- location(
- filename: str,
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 返回类型:
FileLocation
|URLLocation
|ZIPLocation
- media(name: str, streaming: bool = True) Source
加载声音或视频资源。
的含义
streaming
是为了load()
.无法流式传输压缩源(即,无法从Zip存档中流式传输视频和压缩音频)。
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法
resource.path
更改,或者文件系统布局更改。
- text(name: str) AbstractDocument
加载纯文本文档。
- 返回类型:
- path = ['.']
默认资源搜索路径。
搜索路径中的位置是按顺序搜索的,并且始终区分大小写。更改路径后,您必须调用 reindex 。
有关路径格式的详细信息,请参阅模块文档。
- 类型:
字符串列表
功能
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法
resource.path
更改,或者文件系统布局更改。
- location(
- filename: str,
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 返回类型:
FileLocation
|URLLocation
|ZIPLocation
- add_font(filename: str) None
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用
font.load
.尽管使用此函数添加字体及其文件名,但始终通过指定字体的族名来加载字体。例如::resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 返回类型:
- image(
- name: str,
- flip_x: bool = False,
- flip_y: bool = False,
- rotate: int = 0,
- atlas: bool = True,
- border: int = 1,
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
(TextureAtlas)如果其尺寸适合包装。这比将图像加载到单独的纹理中更有效。- 参数:
- 返回类型:
备注
使用时
flip_x/y
或rotate
,实际图像数据不会被修改。相反,操纵纹理坐标以产生所需的结果。
- media(name: str, streaming: bool = True) Source
加载声音或视频资源。
的含义
streaming
是为了load()
.无法流式传输压缩源(即,无法从Zip存档中流式传输视频和压缩音频)。
- html(name: str) AbstractDocument
加载一个HTML文档。
- 返回类型:
- attributed(name: str) AbstractDocument
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 返回类型:
- text(name: str) AbstractDocument
加载纯文本文档。
- 返回类型:
- get_texture_bins() list[TextureBin]
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型: