pygame中display模块方法详解

目录

pygame.display.init()

pygame.display.quit()

pygame.display.get_init()

pygame.display.set_mode()

pygame.display.get_surface()

pygame.display.flip()

pygame.display.update()

pygame.display.get_driver()

pygame.display.Info()

pygame.display.get_wm_info()

pygame.display.list_modes()

pygame.display.mode_ok()

pygame.display.gl_get_attribute()

pygame.display.gl_set_attribute()

pygame.display.get_active()

pygame.display.iconify()

pygame.display.toggle_fullscreen()

pygame.display.set_gamma()

pygame.display.set_gamma_ramp()

pygame.display.set_icon()

pygame.display.set_caption()

pygame.display.get_caption()

pygame.display.set_palette()

pygame.display.get_num_displays()

pygame.display.get_window_size()

pygame.display.init()
功能:初始化显示模块

属性:init() -> None

初始化 pygame 显示模块。显示模块在初始化之前无法执行任何操作。在调用更高级别pygame.init()时自动处理。
Pygame将在初始化时从几个内部显示后端中选择一个。将根据当前用户的平台和权限选择显示模式。在显示模块初始化之前,可以将环境变量 SDL_VIDEODRIVER 设置为控制使用哪个后端。这里列出了具有多种选择的系统。
Windows    windib, directx
Unix    x11, dga, fbcon, directfb, ggi, vgl, svgalib, aalib
在某些平台上,可以将pygame显示嵌入到已经存在的窗口中。为此,必须将环境变量 SDL_window id 设置为包含窗口 id 或句柄的字符串。初始化pygame显示时检查环境变量。请注意,在嵌入式显示器中运行时可能会有许多奇怪的副作用。

多次调用是无害的,重复调用没有效果。

pygame.display.quit()
功能:取消初始化显示模块

属性:quit() -> None

关闭整个显示模块。多次调用是无害的,重复调用没有效果。

pygame.display.get_init()
功能:如果显示模块已初始化,则返回True

属性:get_init() -> bool

pygame.display.set_mode()
功能:初始化显示窗口或屏幕

属性:set_mode(size=(0, 0), flags=0, depth=0, display=0) -> Surface

此函数将创建一个显示 Surface 。传入的参数是对显示类型的请求。实际创建的显示将是系统支持的最佳匹配。
返回的 Surface 会被绘制成规则 Surface ,但最终将在监视器上看到区别。
如果没有size被传递或设置为(0,0),并且pygame使用SDL版本1.2.10或更高版本,则创建的 Surface 将具有与当前屏幕分辨率相同的大小。如果只有宽度或高度设置为0,则Surface的对应参数将与屏幕分辨率相同。
通常最好不要传递 depth 参数,将默认使用系统的最佳和最快颜色深度。如果你的游戏需要特定的颜色格式,你可以用这个参数来控制色深。Pygame将模拟一个不可用的颜色深度,它会很慢。
请求全屏显示模式时,有时无法与请求的大小完全匹配。在这些情况下,pygame将选择最接近的兼容匹配项,但返回的曲面仍将始终与请求的大小匹配。
在高分辨率显示器(4k,1080p)和微型图形游戏(640x480)上,因显示的非常小而无法播放时,需使用鼠标事件按比例缩放窗口。游戏认为它是一个640x480的窗口,但实际上它可以更大。
flags参数控制所需的显示类型。有几种类型可供选择,甚至可以使用按位或运算符组合多种类型。如果传递0或no flags参数,它将默认为软件驱动的窗口。
pygame.FULLSCREEN    创建全屏显示
pygame.DOUBLEBUF    推荐用于 HWSURFACE or OPENGL
pygame.HWSURFACE    硬件加速,仅全屏显示
pygame.OPENGL    创建一个OPENGL可渲染显示
pygame.RESIZABLE    显示窗口应该sizeable
pygame.NOFRAME    显示窗口将没有边框或控件
pygame.SCALED    分辨率取决于桌面大小和缩放图形
New in pygame 2.0.0: SCALED

pygame.display.get_surface()
功能:获取对当前设置的显示 Surface 的引用

属性:get_surface() -> Surface

返回对当前设置的显示 Surface 的引用。如果未设置显示模式,则返回“无”。

pygame.display.flip()
功能:将整个显示 Surface 更新到屏幕

属性:flip() -> None

这将更新整个显示的内容。如果显示模式使用的flags是 pygame.HWSURFACE 和 pygame.DOUBLEBUF ,则将等待垂直回溯并交换曲面。如果使用的是不同类型的显示模式,则只需更新曲面的全部内容。
当使用 pygame.OPENGL 显示模式时,这将执行缓冲区交换。
pygame.display.update()
功能:软件显示屏幕的更新部分

属性:

update(rectangle=None) -> None
update(rectangle_list) -> None
此函数类似于用于软件显示的pygame.display.flip()的优化版本。它只允许更新屏幕的一部分,而不是整个区域。如果没有传递参数,它将更新整个表面积,如pygame.display.flip()。
可以向函数传递单个矩形或一系列矩形。一次传递多个矩形比使用单个或部分矩形列表多次调用update更有效。如果传递了一个不包含任何值矩形序列,则会被跳过。
此调用不能用于pygame.OPENGL显示,并将生成异常。
pygame.display.get_driver()
功能:获取pygame显示后端的名称

属性:get_driver() -> name

返回用于显示后端的内部名称。可用于提供有关哪些显示功能可能会加速的有限信息。

pygame.display.Info()
功能:创建一个视频显示信息对象

属性:Info() -> VideoInfo

创建包含多个属性的简单对象来描述当前图形环境。如果在 pygame.display.set_mode() 之前调用此命令,则某些平台可以提供有关默认显示模式的信息。这也可以在设置显示模式以验证满足特定显示选项后调用。VidInfo对象有几个属性:

hw    1  如果显示器是硬件加速的
wm     1  如果可以使用窗口显示模式
video_mem    显示器上的兆字节视频内存。如果未知,则为  0
bitsize    用于存储每个像素的位数
bytesize    用于存储每个像素的字节数
masks    四个用于将RGBA值打包为像素的值
shifts    四个用于将RGBA值打包为像素的值
losses    四个用于将RGBA值打包为像素的值
blit_hw    1   如果硬件Surface blitting是加速的
blit_hw_CC    1   如果硬件Surface colorkey blitting是加速的
blit_hw_A    1   如果硬件Surface pixel alpha blitting 是加速的
blit_sw    1   如果软件Surface blitting是加速的
blit_sw_CC    1   如果软件Surface colorkey blitting是加速的
blit_sw_A    1   如果软件Surface pixel alpha blitting是加速的
current_h, current_w    
当前视频模式的高度和宽度,或桌面模式(如果在调用display.set_mode之前调用)。

(current_h, current_w从SDL1.2.10和PyGame1.8.0开始可用)

如果错误or使用旧的SDL,则为-1。

pygame.display.get_wm_info()
功能:获取有关当前窗口系统的信息

属性:get_wm_info() -> dict

创建一个包含字符串键的字典。字符串和值由系统任意创建。某些系统可能没有信息,将返回空字典。大多数平台将返回一个"window" 键,其值设置为当前显示的系统id。

New with pygame 1.7.1

pygame.display.list_modes()
功能:获取可用全屏模式的列表

属性:list_modes(depth=0, flags=pygame.FULLSCREEN, display=0) -> list

此函数返回指定颜色深度的可能大小列表。如果给定参数没有可用的显示模式,则返回值将为空列表。返回值-1意味着任何请求的大小都应该正常工作(这可能是窗口模式的情况)。模式大小按大小排序。
如果depth为0,SDL将为显示选择当前/最佳颜色深度。flags默认为pygame.FULLSCREEN,但您可能需要为特定的全屏模式添加其他标志。
显示索引0表示使用默认显示。
The display argument is new with pygame 1.9.5.

pygame.display.mode_ok()
功能:为显示模式选择最佳颜色深度

属性:mode_ok(size, flags=0, depth=0, display=0) -> depth

此函数使用与pygame.display.set_mode()相同的参数。它用于确定请求的显示模式是否可用。如果无法设置显示模式,则返回0。否则它将返回与所需显示最匹配的像素深度。
通常不会传递depth参数,但某些平台可以支持多个显示深度。如果传递,它将提示哪个深度更匹配。
最有用的flags是pygame.HWSURFACE、pygame.DOUBLEBUF,也许还有pygame.FULLSCREEN。如果无法设置这些显示标志,则函数将返回0。
显示索引0表示使用默认显示。
The display argument is new with pygame 1.9.5.

pygame.display.gl_get_attribute()
功能:获取当前显示的OpenGL flag的值

属性:gl_get_attribute(flag) -> value

使用pygame.OPENGL  flag调用pygame.display.set_mode()之后,最好检查任何请求的OPENGL属性的值。有关有效标志的列表,请参见pygame.display.gl_set_attribute()。

pygame.display.gl_set_attribute()
功能:请求显示模式的OpenGL显示属性

属性:gl_set_attribute(flag, value) -> None

使用pygame.OPENGL flags调用pygame.display.set_mode()时,pygame会自动处理设置OPENGL属性,如颜色和双缓冲。OpenGL提供了其他一些您可能需要控制的属性。将这些属性之一作为flags传递,并传递相应的值。这必须在pygame.display.set_mode()之前调用。
许多设置是请求最小值。如果OpenGL无法提供请求的属性,则使用OpenGL语境创建窗口将失败,但它可能会给您一个模具缓冲区,即使您没有请求,也可能会给您一个比请求的更大的缓冲区。
The OPENGL flags are:

GL_ALPHA_SIZE,

GL_DEPTH_SIZE, GL_STENCIL_SIZE,

GL_ACCUM_RED_SIZE, GL_ACCUM_GREEN_SIZE,

GL_ACCUM_BLUE_SIZE, GL_ACCUM_ALPHA_SIZE,

GL_MULTISAMPLEBUFFERS, GL_MULTISAMPLESAMPLES,

GL_STEREO

New in pygame 2.0: Additional attributes:

GL_ACCELERATED_VISUAL,
GL_CONTEXT_MAJOR_VERSION, GL_CONTEXT_MINOR_VERSION,
GL_CONTEXT_FLAGS, GL_CONTEXT_PROFILE_MASK,
GL_SHARE_WITH_CURRENT_CONTEXT,
GL_CONTEXT_RELEASE_BEHAVIOR,
GL_FRAMEBUFFER_SRGB_CAPABLE
GL_MULTISAMPLEBUFFERS

是否启用多采样抗锯齿。默认为0(禁用)。将 GL_MULTISAMPLESAMPLES 设置为大于0的值,以控制抗锯齿的数量。典型值是2或3。

GL_STENCIL_SIZE

模具缓冲区的最小位大小。默认为0。

GL_DEPTH_SIZE

深度缓冲区的最小位大小。默认为16。

GL_STEREO

1启用立体3D。默认为0。

GL_BUFFER_SIZE

帧缓冲区的最小位大小。默认为0。

GL_CONTEXT_PROFILE_MASK

将OpenGL配置文件设置为以下值之一:

GL_CONTEXT_PROFILE_CORE    禁用不推荐的功能
GL_CONTEXT_PROFILE_COMPATIBILITY    允许不推荐的功能
GL_CONTEXT_PROFILE_ES    只允许OpenGL的ES特性子集
GL_ACCELERATED_VISUAL

设置为1需要硬件加速,或设置为0强制软件渲染。默认情况下,两者都是允许的。

pygame.display.get_active()
功能:当屏幕上的显示处于活动状态时返回True

属性:get_active() -> bool

当显示表面在屏幕上被认为是活动可渲染的并且可能对用户可见时,返回True。这是pygame.display.set_mode()之后的默认状态。即使应用程序完全隐藏在另一个应用程序窗口后面,此方法也可能返回True。
如果显示表面已图标化或最小化(通过pygame.display.iconify()或通过操作系统特定的方法,如大多数桌面上可用的最小化图标),则返回False。
该方法还可以由于其他原因返回False,而不需要用户显式地将应用程序图标化或最小化。一个值得注意的例子是,如果用户有多个虚拟机,并且显示面不在活动虚拟机上。
注意:返回True的函数与应用程序是否具有输入焦点无关。参阅 pygame.key.get_focused() 和 pygame.mouse.get_focused() 与输入焦点相关的API。

pygame.display.iconify()
功能:使显示面图标化

属性:iconify() -> bool

请求将显示曲面的窗口设置为图标化或隐藏。并非所有系统和显示器都支持图标化显示。如果成功,函数将返回True。
当显示为图标化时,pygame.display.get_active()将返回False。当窗口已图标化时,事件队列应接收ACTIVEEVENT事件。
pygame.display.toggle_fullscreen()
功能:在全屏和窗口显示之间切换

属性:toggle_fullscreen() -> int

在窗口模式和全屏模式之间切换显示窗口。此函数仅在UNIX X11视频驱动程序下工作。在大多数情况下,最好使用新的显示flags调用pygame.display.set_mode()。

pygame.display.set_gamma()
功能:更改硬件gamma渐变

属性:set_gamma(red, green=None, blue=None) -> bool

设置显示硬件上的红色、绿色和蓝色伽马值。如果绿色和蓝色的参数没有通过,它们都将与红色相同。并非所有系统和硬件都支持gamma斜坡,如果函数成功,它将返回True。
gamma值为1.0将创建线性颜色表。值越低,显示越暗,值越高,显示越亮。
pygame.display.set_gamma_ramp()
功能:使用自定义查找更改硬件gamma渐变

属性:set_gamma_ramp(red, green, blue) -> bool

使用显式查找表设置红色、绿色和蓝色gamma渐变。每个参数应该是256个整数的序列。整数的范围应在0到0xffff之间。并非所有系统和硬件都支持gamma斜坡,如果函数成功,它将返回True。

pygame.display.set_icon()
功能:更改显示窗口的系统图像

属性:set_icon(Surface) -> None

设置系统用来表示显示窗口的运行时图标。所有窗口默认为窗口图标的简单pygame徽标。
可以传递任何Surface,但大多数系统需要一个32x32左右的较小图像。图像可以具有彩色键透明度,该透明度将传递给系统。
某些系统不允许窗口图标在显示后更改。此函数可以在 pygame.display.set_mode() 之前调用,以便在设置显示模式之前创建图标。
pygame.display.set_caption()
功能:设置当前窗口标题

属性:set_caption(title, icontitle=None) -> None

如果显示器有窗口标题,此函数将更改窗口上的名称。有些系统支持用于最小化显示的替换短标题。

pygame.display.get_caption()
功能:获取当前窗口标题

属性:get_caption() -> (title, icontitle)

返回显示Surface的标题和图标。这些值通常是相同的。

pygame.display.set_palette()
功能:设置索引显示的显示调色板

属性:set_palette(palette=None) -> None

这将更改8位显示器的视频显示调色板。这不会更改实际显示Surface的选项板,仅更改用于显示Surface的选项板。如果未传递任何调色板参数,则将还原系统默认调色板。调色板是一个RGB三元组序列。

pygame.display.get_num_displays()
功能:返回显示数

属性:get_num_displays() -> int

返回可用显示的数目。如果pygame.get_sdl_version()取得并返回SDL的主版本号低于2,则此值始终为1。

New in pygame 1.9.5.

pygame.display.get_window_size()
功能:返回窗口或屏幕的大小

属性:get_window_size() -> tuple

返回用pygame.display.set_mode()初始化的窗口大小。如果使用缩放,这可能与显示Surface的大小不同。

New in pygame 2.0.
————————————————
版权声明:本文为CSDN博主「Rita_Aloha」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rita_aloha/article/details/106208691

上一篇:python桥接手柄和串口实现通信


下一篇:亲自动手实现Python+pygame中国象棋游戏