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-sensitiveforward 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应力

组合在一起 rwabt 具有建筑意义的字符 open 功能。

返回类型:

file object

get_cached_animation_names()

获取已缓存的动画文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_cached_image_names()

获取已缓存的图像文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_cached_texture_names()

获取当前缓存的纹理的名称。

返回类型:

list of str

get_texture_bins()

获取正在使用的纹理回收站的列表。

这仅对调试和分析有用。

返回类型:

list

返回:

列表 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)

网络上的位置。

此类使用 urlparseurllib2 在给定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应力

组合在一起 rwabt 具有建筑意义的字符 open 功能。

返回类型:

file object

get_cached_animation_names()

获取已缓存的动画文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_cached_image_names()

获取已缓存的图像文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_cached_texture_names()

获取当前缓存的纹理的名称。

返回类型:

list of str

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应力

应用程序的名称。

返回类型:

str

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

返回类型:

str

get_settings_path(name)

获取用于保存用户首选项的目录。

不同的平台对保存用户首选项、保存的游戏和设置的位置有不同的约定。此函数实现这些约定。请注意,返回的路径可能不存在:应用程序应使用 os.makedirs 如果需要的话,可以建造它。

在Linux上,一个目录 name 在用户的配置目录中返回(通常在 ~/.config )。

在Windows上(包括在Cygwin下) name 用户的目录中 Application Settings 返回目录。

在Mac OS X上 name 下的目录 ~/Library/Application Support 是返回的。

参数:
name应力

应用程序的名称。

返回类型:

str

get_texture_bins()

获取正在使用的纹理回收站的列表。

这仅对调试和分析有用。

返回类型:

list

返回:

列表 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应力

组合在一起 rwabt 具有建筑意义的字符 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_cached_image_names()

获取已缓存的图像文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_cached_animation_names()

获取已缓存的动画文件名列表。

这仅对调试和分析有用。

返回类型:

list

返回:

字符串列表

get_texture_bins()

获取正在使用的纹理回收站的列表。

这仅对调试和分析有用。

返回类型:

list

返回:

列表 TextureBin

get_cached_texture_names()

获取当前缓存的纹理的名称。

返回类型:

list of str

例外情况

class ResourceNotFoundException(name)

在搜索路径上找不到命名的资源。

class UndetectableShaderType(name)

无法识别Shader源的类型。