pygame
the top level pygame package
— initialize all imported pygame modules
— uninitialize all pygame modules
— returns True if pygame is currently initialized
— standard pygame exception
— get the current error message
— set the current error message
— get the version number of SDL
— get the byte order of SDL
— register a function to be called when pygame quits
— Encode a Unicode or bytes object
— Encode a Unicode or bytes object as a file system path

PyGame包代表了供其他人使用的顶级包。PYGAME本身被分成许多子模块,但这并不影响使用PYGAME的程序。

为了方便起见,pyGame中的大多数顶级变量都被放在一个名为 pygame.localspygame constants 。这是用来与 from pygame.locals import * ,此外, import pygame 。

当你 import pygame 所有可用的pyGame子模块都会自动导入。请注意,我们考虑了一些pyGame模块 可选 ,并且可能不可用。在这种情况下,pyGame将提供一个占位符对象,而不是可用于测试可用性的模块。

pygame.init()
initialize all imported pygame modules
init() -> (numpass, numfail)

初始化所有导入的pyGame模块。如果模块失败,则不会引发异常,但如果模块成功,则返回失败的总数,并以元组的形式返回。您始终可以手动初始化各个模块,但是 pygame.init()initialize all imported pygame modules 是一种开始一切的便捷方式。这个 init() 个别模块的函数在失败时将引发异常。

您可能希望分别初始化不同的模块以加快程序运行速度,或者不使用游戏不需要的模块。

我们可以放心地把这个叫做 init() 不止一次,因为重复呼叫不会有任何效果。这是真的,即使你有 pygame.quit() 所有的模块。

pygame.quit()
uninitialize all pygame modules
quit() -> None

取消初始化之前已初始化的所有pyGame模块。当Python解释器关闭时,此方法无论如何都会被调用,因此您的程序应该不需要它,除非它想要终止其pyGame资源并继续。多次调用此函数是安全的,因为重复调用没有任何效果。

备注

呼叫 pygame.quit()uninitialize all pygame modules 不会退出您的程序。考虑让您的程序以正常的Python程序结束的方式结束。

pygame.get_init()
returns True if pygame is currently initialized
get_init() -> bool

退货 True 如果当前已初始化PYGAME。

New in pygame 1.9.5.

exception pygame.error
standard pygame exception
raise pygame.error(message)

每当pyGame或SDL操作失败时,都会引发此异常。您可以捕获任何预期的问题并处理错误。异常总是伴随着有关问题的描述性消息而引发。

派生自 RuntimeError 异常,该异常也可用于捕获这些引发的错误。

pygame.get_error()
get the current error message
get_error() -> errorstr

SDL维护一条内部错误消息。此消息通常会在以下情况下发送给您 pygame.error()standard pygame exception 引发,因此很少需要此函数。

pygame.set_error()
set the current error message
set_error(error_msg) -> None

SDL维护一条内部错误消息。此消息通常会在以下情况下发送给您 pygame.error()standard pygame exception 引发,因此很少需要此函数。

pygame.get_sdl_version()
get the version number of SDL
get_sdl_version() -> major, minor, patch

返回SDL库的三个版本号。此版本在编译时生成。它可以用来检测哪些功能可以通过pyGame使用,哪些功能不可以使用。

New in pygame 1.7.0.

pygame.get_sdl_byteorder()
get the byte order of SDL
get_sdl_byteorder() -> int

返回SDL库的字节顺序。它又回来了 1234 对于小端字节顺序和 4321 用于高端字节顺序。

New in pygame 1.8.

pygame.register_quit()
register a function to be called when pygame quits
register_quit(callable) -> None

什么时候 pygame.quit()uninitialize all pygame modules 调用时,将调用所有注册的Quit函数。PYGAME模块在初始化时自动执行此操作,因此很少需要此函数。

pygame.encode_string()
Encode a Unicode or bytes object
encode_string([obj [, encoding [, errors [, etype]]]]) -> bytes or None

OBJ:如果是Unicode,则进行编码;如果是字节,则返回未更改的内容;如果有其他情况,则返回 None ;如果没有给予,则举起 SyntaxError 。

ENCODING(字符串):如果存在,则使用编码。默认为 'unicode_escape' 。

Errors(字符串):如果给定,如何处理不可编码的字符。默认为 'backslashreplace' 。

Etype(异常类型):如果给定,则为编码错误引发的异常类型。默认为 UnicodeEncodeError ,由返回 PyUnicode_AsEncodedString() 。对于默认编码和错误值,不应存在编码错误。

此函数用于对文件路径进行编码。支持关键字参数。

New in pygame 1.9.2: (主要用于单元测试)

pygame.encode_file_path()
Encode a Unicode or bytes object as a file system path
encode_file_path([obj [, etype]]) -> bytes or None

OBJ:如果是Unicode,则进行编码;如果是字节,则返回未更改的内容;如果有其他情况,则返回 None ;如果没有给予,则举起 SyntaxError 。

Etype(异常类型):如果给定,则为编码错误引发的异常类型。默认为 UnicodeEncodeError ,由返回 PyUnicode_AsEncodedString() 。

此函数用于编码pyGame中的文件路径。对编解码器进行编码,由返回 sys.getfilesystemencoding() 。支持关键字参数。

New in pygame 1.9.2: (主要用于单元测试)

pygame.version
small module containing version information
— version number as a string
— tupled integers of the version
— repository revision of the build
— tupled integers of the SDL library version

该模块会自动导入到pyGame包中,并可以用来检查导入了哪个版本的pyGame。

pygame.version.ver
version number as a string
ver = '1.2'

这是以字符串表示的版本。它还可以包含微版本号,例如 '1.5.2'

pygame.version.vernum
tupled integers of the version
vernum = (1, 5, 3)

该版本信息可以很容易地与相同格式的其他版本号进行比较。检查电子游戏版本号的示例如下所示:

if pygame.version.vernum < (1, 5):
    print('Warning, older version of pygame (%s)' %  pygame.version.ver)
    disable_advanced_features = True

New in pygame 1.9.6: 属性 major , minor ,以及 patch 。

vernum.major == vernum[0]
vernum.minor == vernum[1]
vernum.patch == vernum[2]

Changed in pygame 1.9.6: str(pygame.version.vernum) 返回如下所示的字符串 "2.0.0" 而不是 "(2, 0, 0)" 。

Changed in pygame 1.9.6: repr(pygame.version.vernum) 返回如下所示的字符串 "PygameVersion(major=2, minor=0, patch=0)" 而不是 "(2, 0, 0)" 。

pygame.version.rev
repository revision of the build
rev = 'a6f89747b551+'

从中生成此包的存储库签出的Mercurial节点标识符。如果标识符以加号‘+’结尾,则包包含未提交的更改。请在错误报告中包含此修订号,特别是对于非发布的pyGame版本。

重要提示:PYGAME开发已经转移到GitHub,这个变量现在已经过时了。一旦开发转移到GitHub,该变量就开始返回空字符串 "" 。之后,它始终返回空字符串 v1.9.5 。

Changed in pygame 1.9.5: 始终返回空字符串 "" 。

pygame.version.SDL
tupled integers of the SDL library version
SDL = '(2, 0, 12)'

这是表示为扩展元组的SDL库版本。它还具有可按如下方式访问的“主要”、“次要”和“补丁”属性:

>>> pygame.version.SDL.major
2

打印整个内容将返回如下字符串:

>>> pygame.version.SDL
SDLVersion(major=2, minor=0, patch=12)

New in pygame 2.0.0.

设置环境变量

可以通过设置环境变量来控制PYGAME行为的某些方面,它们涵盖了库的广泛功能。其中一些变量来自pyGame本身,而其他变量则来自pyGame使用的底层C SDL库。

在Python中,环境变量通常在如下代码中设置::

import os
os.environ['NAME_OF_ENVIRONMENT_VARIABLE'] = 'value_to_set'

或保留用户覆盖变量的能力::

import os
os.environ['ENV_VAR'] = os.environ.get('ENV_VAR', 'value')

如果应用程序的用户要设置的变量比开发人员更有用,那么他们可以这样设置:

窗口 ::

set NAME_OF_ENVIRONMENT_VARIABLE=value_to_set
python my_application.py

Linux/Mac ::

ENV_VAR=value python my_application.py

对于一些变量,它们需要在初始化pyGame之前设置,有些变量甚至必须在导入pyGame之前设置,而另一些变量则可以在它们控制的代码区域运行之前设置。

下面是环境变量的列表、它们的可设置值以及它们的作用的简要说明。


游戏机环境变量

这些变量由PYGAME本身定义。


PYGAME_DISPLAY - Experimental (subject to change)
Set index of the display to use, "0" is the default.

这将设置PYGAME将打开其窗口或屏幕的显示。如果在调用之前设置,则将使用此处设置的值 pygame.display.set_mode()Initialize a window or screen for display ,并且只要没有将“Display”参数传递给 pygame.display.set_mode()Initialize a window or screen for display 。


PYGAME_FORCE_SCALE -
Set to "photo" or "default".

这会强制set_mode()使用缩放显示模式,如果设置了“Photo”,则会使缩放使用最慢但质量最高的各向异性缩放算法(如果可用)。必须在调用前设置 pygame.display.set_mode()Initialize a window or screen for display 。


PYGAME_BLEND_ALPHA_SDL2 - New in pygame 2.0.0
Set to "1" to enable the SDL2 blitter.

这使得PYGAME对所有的Alpha混合使用SDL2阻击器。SDL2阻击器有时比默认阻击器更快,但使用不同的公式,因此最终颜色可能不同。必须在此之前设置 pygame.init()initialize all imported pygame modules 被称为。


PYGAME_HIDE_SUPPORT_PROMPT -
Set to "1" to hide the prompt.

这会阻止控制台中弹出的欢迎消息,该消息会告诉您正在使用的是哪个版本的python、pyGame和SDL。必须在导入PYGAME之前设置。


PYGAME_FREETYPE -
Set to "1" to enable.

这会将pygame.font模块切换到绕过sdl_ttf的纯freetype实现。请参阅字体模块了解您可能想要这样做的原因。必须在导入PYGAME之前设置。


PYGAME_CAMERA -
Set to "opencv" or "vidcapture"

强制摄像头模块中使用的库后端,覆盖平台默认设置。必须在调用前设置 pygame.camera.init()Module init 。

在pyGame 2.0.3中,可以通过编程来设置后端,旧的OpenCV后端已经被替换为“opencv-python”上的一个后端,而不是旧的“Highgui”OpenCV端口。此外,还有一个新的原生Windows后端可用。



SDL环境变量

这些变量由SDL定义。

有关pyGame 1中可用的环境变量的文档,请尝试 here 。对于PyGame 2,下面列出了一些选定的环境变量。


SDL_VIDEO_CENTERED -
Set to "1" to enable centering the window.

这将使电子游戏窗口在显示器的中央打开。必须在调用前设置 pygame.display.set_mode()Initialize a window or screen for display 。


SDL_VIDEO_WINDOW_POS -
Set to "x,y" to position the top left corner of the window.

这允许控制PYGAME窗口在显示器内的放置。必须在调用前设置 pygame.display.set_mode()Initialize a window or screen for display 。


SDL_VIDEODRIVER -
Set to "drivername" to change the video driver used.

在一些平台上,有多个视频驱动程序可用,这允许用户在它们之间进行选择。欲了解更多信息,请访问 here 。必须在调用前设置 pygame.init()initialize all imported pygame modules 或 pygame.display.init()Initialize the display module 。


SDL_AUDIODRIVER -
Set to "drivername" to change the audio driver used.

在一些平台上,有多个音频驱动程序可用,这允许用户在它们之间进行选择。欲了解更多信息,请访问 here 。必须在调用前设置 pygame.init()initialize all imported pygame modules 或 pygame.mixer.init()initialize the mixer module 。


SDL_VIDEO_ALLOW_SCREENSAVER
Set to "1" to allow screensavers while pygame apps are running.

默认情况下,pyGame应用程序在运行时会禁用屏幕保护程序。设置此环境变量允许用户或开发人员更改并使屏幕保护程序再次运行。


SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR
Set to "0" to re-enable the compositor.

默认情况下,SDL尝试禁用所有pyGame应用程序的X11合成器。这通常是一件好事,因为它更快,但如果你有一个应用程序, 不 更新每一帧,并且正在使用Linux,您可能想要禁用此绕过。绕过报告了KDE Linux上的问题。该变量仅在x11/Linux平台上使用。




Edit on GitHub