ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pygame中display模块方法详解

2021-06-05 15:58:18  阅读:446  来源: 互联网

标签:显示 set get 详解 pygame GL 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

标签:显示,set,get,详解,pygame,GL,display
来源: https://blog.csdn.net/qq_41703554/article/details/117325614

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有