当前位置:   article > 正文

pygame之display模块

pygame之display模块

                      display-控制显示窗口和屏幕的Pygame模块

pygame.display.init—初始化显示模块

pygame.display.quit—取消初始化显示模块

pygame.display.get_init—如果已初始化显示模块,则返回True

pygame.display.set_mode—初始化窗口或屏幕以进行显示

pygame.display.get_surface—获取当前设置的显示表面的参考

pygame.display.flip—将完整显示Surface更新到屏幕

pygame.display.update—更新屏幕的部分以显示软件

pygame.display.get_driver—获取pygame显示后端的名称

pygame.display.Info—创建视频显示信息对象

pygame.display.get_wm_info—获取有关当前窗口系统的信息

pygame.display.list_modes—获取可用的全屏模式列表

pygame.display.mode_ok—为显示模式选择最佳颜色深度

pygame.display.gl_get_attribute—获取当前显示的OpenGL标志的值

pygame.display.gl_set_attribute—请求显示模式的OpenGL显示属性

pygame.display.get_active—当显示器在显示器上处于活动状态时返回True

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显示。Pygame有一个显示Surface,可以包含在窗口中,也可以全屏运行。创建显示后,您将其视为常规Surface。屏幕上无法立即看到更改; 您必须从两个翻转功能中选择一个来更新实际显示。显示的原点(x = 0和y = 0)位于屏幕的左上角。两个轴都朝向屏幕的右下方正向增加。pygame显示实际上可以在几种模式之一中初始化。默认情况下,显示器是基本的软件驱动帧缓冲器。您可以请求硬件加速和OpenGL支持等特殊模块。这些由传递给的标志控制pygame.display.set_mode()。Pygame在任何时候都只能激活一个显示器。创建一个新的pygame.display.set_mode()将关闭以前的显示。如果需要在像素格式或显示分辨率精确的控制,使用函数pygame.display.mode_ok(),pygame.display.list_modes()和 pygame.display.Info()查询有关的显示信息。创建显示Surface后,此模块中的功能将影响单个现有显示。如果模块未初始化,则Surface将变为无效。如果设置了新的显示模式,现有的Surface将自动切换到新显示器上。设置显示模式后,pygame事件队列中会放置几个事件pygame.QUIT当用户请求程序关闭时发送。窗口将pygame.ACTIVEEVENT在显示增益和输入焦点丢失时接收事件。如果使用pygame.RESIZABLE标志设置显示,则 pygame.VIDEORESIZE在用户调整窗口尺寸时将发送事件。直接绘制到屏幕的硬件显示将pygame.VIDEOEXPOSE在必须重绘窗口的某些部分时获得事件。某些显示环境具有自动拉伸所有窗口的选项。启用此选项后,此自动拉伸会扭曲pygame窗口的外观。在pygame examples目录中,有一个示例代码(prevent_display_stretching.py),它显示了如何在Microsoft Windows(Vista或更新版本)上禁用pygame显示的自动拉伸。

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

init() - >无

初始化pygame显示模块。在初始化之前,显示模块无法执行任何操作。当您呼叫更高级别时,通常会自动为您处理pygame.init()。Pygame会在初始化时从几个内部显示后端中选择一个。将根据当前用户的平台和权限选择显示模式。在初始化显示模块之前,SDL_VIDEODRIVER可以设置环境变量以控制使用哪个后端。此处列出了具有多个选项的系统。

Windows : windib, directx

Unix    : x11, dga, fbcon, directfb, ggi, vgl, svgalib, aalib

在某些平台上,可以将pygame显示嵌入到现有窗口中。为此,SDL_WINDOWID必须将环境变量设置为包含窗口标识或句柄的字符串。初始化pygame显示时,将检查环境变量。请注意,在嵌入式显示器中运行时可能会出现许多奇怪的副作用。多次调用它是无害的,但是重复调用没有效果。

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

quit() - >无

这将关闭整个显示模块。这意味着将关闭所有活动显示。程序退出时也会自动处理。多次调用它是无害的,但是重复调用没有效果。

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

get_init() - > bool

如果当前初始化pygame.display控制显示窗口和屏幕模块的pygame模块,则返回True 。

pygame.display.set_mode() 初始化窗口或屏幕以进行显示

set_mode(resolution =(0,0),flags = 0,depth = 0) - > Surface

此功能将创建一个显示Surface。传入的参数是对显示类型的请求。实际创建的显示将是系统支持的最佳匹配。resolution参数是一对表示宽度和高度的数字。flags参数是其他选项的集合。depth参数表示用于颜色的位数。返回的Surface可以像常规Surface一样绘制,但最终会在监视器上看到更改。如果未传递分辨率或设置为(0,0)且pygame使用SDL 1.2.10或更高版本,则创建的Surface将具有与当前屏幕分辨率相同的大小。如果仅将宽度或高度设置为0,则Surface将具有与屏幕分辨率相同的宽度或高度。使用SDL1.2.10之前的 版本将引发异常。通常最好不要传递深度参数。它将默认为系统的最佳和最快颜色深度。如果您的游戏需要特定的颜色格式,您可以使用此参数控制深度。Pygame将模拟不可用的颜色深度,这可能很慢。请求全屏显示模式时,有时无法完全匹配所请求的分辨率。在这些情况下,pygame将选择最接近的兼容匹配。返回的曲面仍将始终与请求的分辨率匹配。flags参数控制您想要的显示类型。有几种可供选择,您甚至可以使用按位或运算符(管道“|”字符)组合多种类型。如果传递0或没有flags参数,它将默认为软件驱动的窗口。以下是您要选择的显示标志:

pygame.FULLSCREEN    create a fullscreen display

pygame.DOUBLEBUF     recommended for HWSURFACE or OPENGL

pygame.HWSURFACE     hardware accelerated, only in FULLSCREEN

pygame.OPENGL        create an OpenGL-renderable display

pygame.RESIZABLE     display window should be sizeable

pygame.NOFRAME       display window will have no border or controls

例如:

# Open a window on the screen

screen_width=700

screen_height=400

screen=pygame.display.set_mode([screen_width,screen_height])

pygame.display.get_surface() 获取当前设置的显示表面的参考

get_surface() - > Surface

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

pygame.display.flip() 将完整显示Surface更新到屏幕

flip() - >无

这将更新整个显示的内容。如果您的显示模式,使用标志pygame.HWSURFACE和pygame.DOUBLEBUF,这将等待垂直回扫和交换表面。如果您使用的是其他类型的显示模式,则只会更新曲面的全部内容。使用pygame.OPENGL显示模式时,这将执行gl缓冲区交换。

pygame.display.update() 更新屏幕的部分以显示软件

update(rectangle=None) -> None

update(rectangle_list) -> None

此功能类似于pygame.display.flip()软件显示的优化版本。它只允许更新屏幕的一部分,而不是整个区域。如果没有传递参数,它会更新整个Surface区域pygame.display.flip()。您可以将函数传递给单个矩形或一系列矩形。一次传递多个矩形比使用单个或部分矩形列表多次调用更新更有效。如果传递一系列矩形,则可以安全地在列表中包含None值,这将被跳过。此调用无法在pygame.OPENGL显示器上使用,并将生成异常。

pygame.display.get_driver() 获取pygame显示后端的名称

get_driver() - >Name

Pygame在初始化时选择许多可用的显示后端之一。这将返回用于显示后端的内部名称。这可用于提供有关可能加速的显示功能的有限信息。请参阅SDL_VIDEODRIVER标志 pygame.display.set_mode()以查看一些常见选项。

pygame.display.Info() 创建视频显示信息对象

Info() - > VideoInfo

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

hw:         True if the display is hardware accelerated

wm:         True if windowed display modes can be used

video_mem:  The megabytes of video memory on the display. This is 0 if unknown

bitsize:    Number of bits used to store each pixel

bytesize:   Number of bytes used to store each pixel

masks:      Four values used to pack RGBA values into pixels

shifts:     Four values used to pack RGBA values into pixels

losses:     Four values used to pack RGBA values into pixels

blit_hw:    True if hardware Surface blitting is accelerated

blit_hw_CC: True if hardware Surface colorkey blitting is accelerated

blit_hw_A:  True if hardware Surface pixel alpha blitting is accelerated

blit_sw:    True if software Surface blitting is accelerated

blit_sw_CC: True if software Surface colorkey blitting is accelerated

blit_sw_A:  True if software Surface pixel alpha blitting is accelerated

current_h, current_w:  Height and width of the current video mode, or of the

  desktop mode if called before the display.set_mode is called.

  (current_h, current_w are available since SDL 1.2.10, and pygame 1.8.0)

  They are -1 on error, or if an old SDL is being used.

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

get_wm_info() - > dict

创建一个填充字符串键的字典。字符串和值由系统任意创建。某些系统可能没有信息,将返回空字典。大多数平台将返回一个“窗口”键,其值设置为当前显示的系统ID。

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

list_modes(depth = 0,flags = pygame.FULLSCREEN) - > list

此函数返回指定颜色深度的可能尺寸列表。如果给定参数没有可用的显示模式,则返回值将为空列表。返回值为-1表示任何请求的分辨率都应该有效(对于窗口模式可能就是这种情况)。模式大小从最大到最小排序。如果深度为0,SDL将为显示选择当前/最佳颜色深度。标志默认为pygame.FULLSCREEN,但您可能需要为特定的全屏模式添加其他标志。

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

mode_ok(size,flags = 0,depth = 0) - > depth

此函数使用与...相同的参数pygame.display.set_mode()。它用于确定所请求的显示模式是否可用。如果无法设置显示模式,它将返回0。否则,它将返回与所要求的显示最匹配的像素深度。通常深度参数不会传递,但某些平台可以支持多个显示深度。如果通过它将暗示哪个深度更好匹配。要传递的最有用的标志是pygame.HWSURFACE, pygame.DOUBLEBUF也许pygame.FULLSCREEN。如果无法设置这些显示标志,该函数将返回0。

pygame.display.gl_get_attribute() 获取当前显示的OpenGL标志的值

gl_get_attribute(flag) - > value

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

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

gl_set_attribute(flag,value) - >无

pygame.display.set_mode()使用pygame.OPENGL标志调用时,Pygame会自动处理设置OpenGL属性,如颜色和双缓冲。OpenGL提供了一些您可能想要控制的其他属性。将其中一个属性作为标志及其适当的值传递。这必须在之前调用pygame.display.set_mode()该OPENGL标志;

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

pygame.display.get_active() 当显示器在显示器上处于活动状态时返回True

get_active() - > bool

之后pygame.display.set_mode()被称为显示器表面会显示在屏幕上。大多数窗口显示都可以被用户隐藏。如果显示Surface隐藏或图标化,则返回False。

pygame.display.iconify() 图标化显示表面

iconify() - > bool

请求显示表面的窗口被图标化或隐藏。并非所有系统和显示器都支持图标化显示。如果成功,该函数将返回True。当显示图标化时pygame.display.get_active()将返回False。ACTIVEEVENT当窗口被图标化时,事件队列应该接收事件。

pygame.display.toggle_fullscreen() 在全屏和窗口显示之间切换

toggle_fullscreen() - > bool

在窗口模式和全屏模式之间切换显示窗口。此功能仅适用于UNIX X11视频驱动程序。对于大多数情况,最好pygame.display.set_mode()使用新的显示标志进行调用。

pygame.display.set_gamma() 更改硬件伽玛斜坡

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

在显示硬件上设置红色,绿色和蓝色伽玛值。如果未传递绿色和蓝色参数,则它们将与红色相同。并非所有系统和硬件都支持gamma斜坡,如果功能成功,它将返回True。伽玛值为1.0会创建线性颜色表。较低的值会使显示屏变暗,较高的值会变亮。

pygame.display.set_gamma_ramp() 使用自定义查找更改硬件伽玛斜坡

set_gamma_ramp(red, green, blue) -> bool

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

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

set_icon(Surface) - >无

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

pygame.display.set_caption() 设置当前窗口标题

set_caption(title,icontitle = None) - >无

如果显示器有窗口标题,则此功能将更改窗口上的名称。某些系统支持用于最小化显示的备用较短标题。

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

get_caption() - >(title,icontitle)

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

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

set_palette(palette = None) - >无

这将改变8位显示器的视频显示调色板。这不会更改实际显示Surface的调色板,只会更改用于显示Surface的调色板。如果未传递调色板参数,则将还原系统默认调色板。调色板是RGB三连音的序列 。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/303588
推荐阅读
相关标签
  

闽ICP备14008679号