pyglet.resource
从已知路径加载应用程序资源。
在Python中,通过指定文件名的相对路径来加载资源通常是有问题的,因为工作目录不一定与应用程序的脚本文件的目录相同。
此模块允许应用程序指定资源的搜索路径。相对路径被认为是相对于应用程序的 __main__
模块。Zip文件可以出现在路径上;它们将在里面进行搜索。当使用诸如PyInstaller、py2exe、py2app等冷冻器捆绑应用程序时,资源模块的行为也与预期一致。
除了提供文件引用(使用 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()
。
在 1.1 版本加入.
- exception ResourceNotFoundException(name)
在搜索路径上找不到命名的资源。
- exception UndetectableShaderType(name)
无法识别Shader源的类型。
- class FileLocation(filepath)
文件系统上的位置。
- open(filename, mode='rb')
在此位置打开文件。
- 参数:
- filename应力
要打开的文件名。不支持绝对路径。大多数位置不支持相对路径(应仅指定不带路径组件的文件名)。
- mode应力
打开时使用的文件模式。只有在文件系统上打开的文件才使用该参数;其他人则忽略它。
- 返回类型:
file object
- class Loader(path=None, script_home=None)
从磁盘加载程序资源文件。
加载器包含一个搜索路径,其中可以包括文件系统目录、ZIP存档和Python包。
- 变量:
- path字符串列表
搜索位置列表。修改路径后,必须调用 reindex 方法。
- script_home应力
基本资源位置,默认为应用程序脚本的位置。
- add_font(name)
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用 font.load 。尽管字体是使用此函数使用其文件名添加的,但它是通过指定其系列名称来加载的。例如::
resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 参数:
- name应力
要添加的字体资源的文件名。
- animation(name, flip_x=False, flip_y=False, rotate=0, border=1)
加载带有可选变换的动画。
从相同来源加载但具有不同变换的动画将使用相同的纹理。
- 参数:
- name应力
要加载的动画源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Animation
- attributed(name)
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 参数:
- name应力
要加载的属性文本资源的文件名。
- 返回类型:
FormattedDocument
- file(name, mode='rb')
加载资源。
- 参数:
- name应力
要加载的资源的文件名。
- mode应力
组合在一起
r
,w
,a
,b
和t
具有建筑意义的字符open
功能。
- 返回类型:
file object
- get_cached_animation_names()
获取已缓存的动画文件名列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
字符串列表
- get_cached_image_names()
获取已缓存的图像文件名列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
字符串列表
- get_texture_bins()
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
列表
TextureBin
- html(name)
加载一个HTML文档。
- 参数:
- name应力
要加载的HTML资源的文件名。
- 返回类型:
FormattedDocument
- image(name, flip_x=False, flip_y=False, rotate=0, atlas=True, border=1)
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
如果它是适合包装的尺寸。这比将图像加载到单独的纹理中更高效。- 参数:
- name应力
要加载的图像源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- atlas布尔尔
如果为True,则图像将加载到由Piglet管理的地图集中。如果由于特定纹理原因(例如,需要边界控制)而不适合加载贴图集,则将此参数设置为FALSE。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Texture
- 返回:
如果图像较大或不在贴图集中,则为完整纹理,否则为
TextureRegion
纹理地图集。
- location(name)
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 参数:
- name应力
要查找的资源的文件名。
- 返回类型:
Location
- media(name, streaming=True)
加载声音或视频资源。
的含义 streaming 是为了 media.load 。不能对压缩的源进行流式处理(即,不能从ZIP存档中对视频和压缩音频进行流式处理)。
- 参数:
- name应力
要加载的媒体源的文件名。
- streaming布尔尔
如果源应该从磁盘流传输,则为True;如果应立即将其完全解码到内存中,则为False。
- 返回类型:
media.Source
- model(name, batch=None)
加载3D模型。
- 参数:
- name应力
要加载的3D模型的文件名。
- batch批处理或无
要向其中添加此模型的可选批处理实例。
- 返回类型:
Model
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法 path 或文件系统布局更改。
- shader(name, shader_type=None)
加载Shader对象。
- 参数:
- name应力
要加载的着色器源的文件名。
- shader_type应力
有关着色器类型的提示,如‘Vertex’、‘Fragment’等。如果着色器具有标准文件扩展名,则不需要。
- 返回类型:
A汇编的 Shader 对象。
- text(name)
加载纯文本文档。
- 参数:
- name应力
要加载的纯文本资源的文件名。
- 返回类型:
UnformattedDocument
- texture(name)
加载纹理。
命名的图像将作为单个OpenGL纹理加载。如果图像的尺寸不是2a的幂
TextureRegion
将会被退还。- 参数:
- name应力
要加载的图像资源的文件名。
- 返回类型:
Texture
- class Location
抽象资源位置。
在给定位置的情况下,可以使用 open 方法。这提供了一种方便的方法来指定从中加载文件的路径,而不必让该路径驻留在文件系统上。
- open(filename, mode='rb')
在此位置打开文件。
- 参数:
- filename应力
要打开的文件名。不支持绝对路径。大多数位置不支持相对路径(应仅指定不带路径组件的文件名)。
- mode应力
打开时使用的文件模式。只有在文件系统上打开的文件才使用该参数;其他人则忽略它。
- 返回类型:
file object
- class URLLocation(base_url)
网络上的位置。
此类使用
urlparse
和urllib2
在给定URL的情况下打开网络上的文件的模块。- open(filename, mode='rb')
在此位置打开文件。
- 参数:
- filename应力
要打开的文件名。不支持绝对路径。大多数位置不支持相对路径(应仅指定不带路径组件的文件名)。
- mode应力
打开时使用的文件模式。只有在文件系统上打开的文件才使用该参数;其他人则忽略它。
- 返回类型:
file object
- class ZIPLocation(zip, dir)
ZIP文件中的位置。
- open(filename, mode='rb')
在此位置打开文件。
- 参数:
- filename应力
要打开的文件名。不支持绝对路径。大多数位置不支持相对路径(应仅指定不带路径组件的文件名)。
- mode应力
打开时使用的文件模式。只有在文件系统上打开的文件才使用该参数;其他人则忽略它。
- 返回类型:
file object
- add_font(name)
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用 font.load 。尽管字体是使用此函数使用其文件名添加的,但它是通过指定其系列名称来加载的。例如::
resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 参数:
- name应力
要添加的字体资源的文件名。
- animation(name, flip_x=False, flip_y=False, rotate=0, border=1)
加载带有可选变换的动画。
从相同来源加载但具有不同变换的动画将使用相同的纹理。
- 参数:
- name应力
要加载的动画源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Animation
- attributed(name)
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 参数:
- name应力
要加载的属性文本资源的文件名。
- 返回类型:
FormattedDocument
- file(name, mode='rb')
加载资源。
- 参数:
- name应力
要加载的资源的文件名。
- mode应力
组合在一起
r
,w
,a
,b
和t
具有建筑意义的字符open
功能。
- 返回类型:
file object
- get_cached_animation_names()
获取已缓存的动画文件名列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
字符串列表
- get_cached_image_names()
获取已缓存的图像文件名列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
字符串列表
- get_data_path(name)
获取用于保存用户数据的目录。
对于基于POSIX或Linux的系统,许多发行版都有一个单独的目录来存储特定应用程序的用户数据,该函数返回该位置的路径。请注意,返回的路径可能不存在:应用程序应使用
os.makedirs
如果需要的话,可以建造它。在Linux上,一个目录 name 在用户的数据目录中返回(通常在
~/.local/share
)。在Windows上(包括在Cygwin下) name 用户的目录中
Application Settings
返回目录。在Mac OS X上 name 下的目录
~/Library/Application Support
是返回的。- 参数:
- name应力
应用程序的名称。
- 返回类型:
- get_script_home()
获取包含程序条目模块的目录。
For ordinary Python scripts, this is the directory containing the
__main__
module. For executables created with py2exe the result is the directory containing the running executable file. For OS X bundles created using Py2App the result is the Resources directory within the running bundle.如果上述情况均不适用,且
__main__
无法确定是否返回了工作目录。当脚本由Python分析器运行时,此函数可能返回运行分析器的目录,而不是实际脚本的目录。要解决此问题,可以在中指定实际脚本的完整路径
pyglet.resource.path
。- 返回类型:
- get_settings_path(name)
获取用于保存用户首选项的目录。
不同的平台对保存用户首选项、保存的游戏和设置的位置有不同的约定。此函数实现这些约定。请注意,返回的路径可能不存在:应用程序应使用
os.makedirs
如果需要的话,可以建造它。在Linux上,一个目录 name 在用户的配置目录中返回(通常在
~/.config
)。在Windows上(包括在Cygwin下) name 用户的目录中
Application Settings
返回目录。在Mac OS X上 name 下的目录
~/Library/Application Support
是返回的。- 参数:
- name应力
应用程序的名称。
- 返回类型:
- get_texture_bins()
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
列表
TextureBin
- html(name)
加载一个HTML文档。
- 参数:
- name应力
要加载的HTML资源的文件名。
- 返回类型:
FormattedDocument
- image(name, flip_x=False, flip_y=False, rotate=0, atlas=True, border=1)
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
如果它是适合包装的尺寸。这比将图像加载到单独的纹理中更高效。- 参数:
- name应力
要加载的图像源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- atlas布尔尔
如果为True,则图像将加载到由Piglet管理的地图集中。如果由于特定纹理原因(例如,需要边界控制)而不适合加载贴图集,则将此参数设置为FALSE。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Texture
- 返回:
如果图像较大或不在贴图集中,则为完整纹理,否则为
TextureRegion
纹理地图集。
- location(name)
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 参数:
- name应力
要查找的资源的文件名。
- 返回类型:
Location
- media(name, streaming=True)
加载声音或视频资源。
的含义 streaming 是为了 media.load 。不能对压缩的源进行流式处理(即,不能从ZIP存档中对视频和压缩音频进行流式处理)。
- 参数:
- name应力
要加载的媒体源的文件名。
- streaming布尔尔
如果源应该从磁盘流传输,则为True;如果应立即将其完全解码到内存中,则为False。
- 返回类型:
media.Source
- model(name, batch=None)
加载3D模型。
- 参数:
- name应力
要加载的3D模型的文件名。
- batch批处理或无
要向其中添加此模型的可选批处理实例。
- 返回类型:
Model
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法 path 或文件系统布局更改。
- shader(name, shader_type=None)
加载Shader对象。
- 参数:
- name应力
要加载的着色器源的文件名。
- shader_type应力
有关着色器类型的提示,如‘Vertex’、‘Fragment’等。如果着色器具有标准文件扩展名,则不需要。
- 返回类型:
A汇编的 Shader 对象。
- text(name)
加载纯文本文档。
- 参数:
- name应力
要加载的纯文本资源的文件名。
- 返回类型:
UnformattedDocument
- texture(name)
加载纹理。
命名的图像将作为单个OpenGL纹理加载。如果图像的尺寸不是2a的幂
TextureRegion
将会被退还。- 参数:
- name应力
要加载的图像资源的文件名。
- 返回类型:
Texture
- path = ['.']
默认资源搜索路径。
搜索路径中的位置是按顺序搜索的,并且始终区分大小写。更改路径后,您必须调用 reindex 。
有关路径格式的详细信息,请参阅模块文档。
- 类型:
字符串列表
功能
- reindex()
刷新文件索引。
如果出现以下情况,则必须调用此方法 path 或文件系统布局更改。
- file(name, mode='rb')
加载资源。
- 参数:
- name应力
要加载的资源的文件名。
- mode应力
组合在一起
r
,w
,a
,b
和t
具有建筑意义的字符open
功能。
- 返回类型:
file object
- location(name)
获取资源的位置。
此方法在打开从资源引用的文件时非常有用。例如,作为资源加载的HTML文件可能会引用一些图像。这些图像应该相对于HTML文件定位,而不是在加载器的路径中单独查找。
- 参数:
- name应力
要查找的资源的文件名。
- 返回类型:
Location
- add_font(name)
将字体资源添加到应用程序。
必须先将系统上未安装的字体添加到pyglet中,然后才能将其与一起使用 font.load 。尽管字体是使用此函数使用其文件名添加的,但它是通过指定其系列名称来加载的。例如::
resource.add_font('action_man.ttf') action_man = font.load('Action Man')
- 参数:
- name应力
要添加的字体资源的文件名。
- image(name, flip_x=False, flip_y=False, rotate=0, atlas=True, border=1)
加载带有可选变换的图像。
这类似于 texture ,除非生成的图像将被打包到
TextureBin
如果它是适合包装的尺寸。这比将图像加载到单独的纹理中更高效。- 参数:
- name应力
要加载的图像源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- atlas布尔尔
如果为True,则图像将加载到由Piglet管理的地图集中。如果由于特定纹理原因(例如,需要边界控制)而不适合加载贴图集,则将此参数设置为FALSE。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Texture
- 返回:
如果图像较大或不在贴图集中,则为完整纹理,否则为
TextureRegion
纹理地图集。
- animation(name, flip_x=False, flip_y=False, rotate=0, border=1)
加载带有可选变换的动画。
从相同来源加载但具有不同变换的动画将使用相同的纹理。
- 参数:
- name应力
要加载的动画源的文件名。
- flip_x布尔尔
如果为True,则返回的图像将水平翻转。
- flip_y布尔尔
如果为True,则返回的图像将垂直翻转。
- rotate集成
返回的图像将顺时针旋转给定的度数(90的倍数)。
- border集成
在贴图集中的每个图像周围保留指定像素的空白空间,这可能有助于减少纹理渗漏。
- 返回类型:
Animation
- texture(name)
加载纹理。
命名的图像将作为单个OpenGL纹理加载。如果图像的尺寸不是2a的幂
TextureRegion
将会被退还。- 参数:
- name应力
要加载的图像资源的文件名。
- 返回类型:
Texture
- media(name, streaming=True)
加载声音或视频资源。
的含义 streaming 是为了 media.load 。不能对压缩的源进行流式处理(即,不能从ZIP存档中对视频和压缩音频进行流式处理)。
- 参数:
- name应力
要加载的媒体源的文件名。
- streaming布尔尔
如果源应该从磁盘流传输,则为True;如果应立即将其完全解码到内存中,则为False。
- 返回类型:
media.Source
- model(name, batch=None)
加载3D模型。
- 参数:
- name应力
要加载的3D模型的文件名。
- batch批处理或无
要向其中添加此模型的可选批处理实例。
- 返回类型:
Model
- shader(name, shader_type=None)
加载Shader对象。
- 参数:
- name应力
要加载的着色器源的文件名。
- shader_type应力
有关着色器类型的提示,如‘Vertex’、‘Fragment’等。如果着色器具有标准文件扩展名,则不需要。
- 返回类型:
A汇编的 Shader 对象。
- html(name)
加载一个HTML文档。
- 参数:
- name应力
要加载的HTML资源的文件名。
- 返回类型:
FormattedDocument
- attributed(name)
加载属性文本文档。
看见 pyglet.text.formats.attributed 有关此格式的详细信息,请参阅。
- 参数:
- name应力
要加载的属性文本资源的文件名。
- 返回类型:
FormattedDocument
- text(name)
加载纯文本文档。
- 参数:
- name应力
要加载的纯文本资源的文件名。
- 返回类型:
UnformattedDocument
- get_texture_bins()
获取正在使用的纹理回收站的列表。
这仅对调试和分析有用。
- 返回类型:
- 返回:
列表
TextureBin
例外情况
- class ResourceNotFoundException(name)
在搜索路径上找不到命名的资源。
- class UndetectableShaderType(name)
无法识别Shader源的类型。