【Pygame手册02/20】pygame模块display控制窗口和屏幕

目录

  • 一、说明
  • 二、pygame.display接口函数
    • 2.1 函数表格
    • 2.2 pygame.display的功能
  • 三、详细的函数调用
    • 3.1 pygame.display.init()
    • 3.2 pygame.display.quit()
    • 3.3 pygame.display.get_init()
    • 3.4 pygame.display.set_mode()
    • 3.5 pygame.display.get_surface()
    • 3.6 pygame.display.flip()
    • 3.7 pygame.display.update()
    • 3.8 pygame.display.get_driver()
    • 3.9 pygame.display. Info()
    • 3.10 pygame.display.get_wm_info()
    • 3.11 pygame.display.get_desktop_sizes()
    • 3.12 pygame.display.list_modes()
    • 3.13 pygame.display.mode_ok()
    • 3.14pygame.display.gl_get_attribute()
    • 3.15 pygame.display.gl_set_attribute()
    • 3.16 pygame.display.get_active()
    • 3.17 pygame.display.iconify()
    • 3.18 pygame.display.iconify()
    • 3.19 pygame.display.toggle_fullscreen()
    • 3.20 pygame.display.set_gamma()
    • 3.21 pygame.display.set_gamma_ramp()
    • 3.22 pygame.display.set_icon()
    • 3.23 pygame.display.set_caption()
    • 3.24 pygame.display.get_caption()
    • 3.25 pygame.display.set_palette()
    • 3.26 pygame.display.get_num_displays()
    • 3.27 pygame.display.get_window_size()
    • 3.28 pygame.display.get_allow_screensaver()
    • 3.29 pygame.display.set_allow_screensaver()
  • 四、后记

一、说明

   本篇我们介绍pygame的display接口;该接口针对显性窗口的方方面面,在该文中,基本参考了官方手册,保证内容的覆盖,并且,作为代码支援,作者因此做了一些测试代码,和图片动画项目供相关人员参考。

二、pygame.display接口函数

   display是pygame下的接口之一,所谓接口,就是本身无什么功能,但可以通过它调用其它的实质函数。如下图:
在这里插入图片描述

2.1 函数表格

函数意义
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.get_desktop_sizes获取活动桌面的大小
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通过自定义查找更改硬件 Gamma 斜坡
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.get_allow_screensaver返回是否允许屏幕保护程序运行。
pygame.display.set_allow_screensaver设置屏幕保护程序是否可以运行

2.2 pygame.display的功能

   该模块提供对 pygame 显示的控制。Pygame只有一个显示器 包含在窗口中或全屏运行的 Surface。一旦你 创建您将其视为常规 Surface 的显示器。更改不是 立即在屏幕上可见;您必须选择两个翻转功能之一 以更新实际显示。

   显示的原点,其中 x = 0 和 y = 0,是 屏幕。两个轴都向屏幕右下角正向增加。

   pygame 显示实际上可以在几种模式之一中初始化。由 默认情况下,显示器是基本的软件驱动的帧缓冲。您可以请求 特殊模块,如自动扩展或 OpenGL 支持。这些是 由传递给 的标志控制。pygame.display.set_mode()

   Pygame在任何时候都只能有一个显示器处于活动状态。创建一个新的 with 将关闭上一个显示。检测 附加屏幕的数量和大小,您可以使用,然后选择适当的窗口大小 并显示要传递给 的索引。

pygame.display.set_mode()
pygame.display.get_desktop_sizes
pygame.display.set_mode()

   向后兼容,可精确控制 像素格式或显示分辨率。这曾经是旧的 显卡和 CRT 屏幕,但通常不再需要。使用 函数 、 ,并查询有关显示的详细信息。

pygame.displaypygame.display.mode_ok()
pygame.display.list_modes()
pygame.display.Info()

   创建显示 Surface 后,此模块中的功能会影响 单个现有显示器。如果模块 初始 化。如果设置了新的显示模式,则现有 Surface 将 自动切换以在新显示器上操作。

   设置显示模式后,会在 pygame 事件上放置多个事件 队列。 当用户请求程序时发送 关闭。该窗口将接收事件作为显示 获得和失去输入焦点。如果使用标志设置了显示,则当 用户调整窗口尺寸。直接绘制到硬件显示器 当窗口的某些部分必须 被重新绘制。

pygame.QUIT
pygame.ACTIVEEVENT
pygame.RESIZABLE
pygame.VIDEORESIZE
pygame.VIDEOEXPOSE

   pygame 2.0.1 中引入了一个新的 windowevent API。查看事件模块文档 了解更多信息

   某些显示环境具有自动拉伸所有选项 窗户。启用此选项后,此自动拉伸会扭曲 pygame 窗口的外观。在 pygame 示例目录中,有 示例代码 (prevent_display_stretching.py) 显示如何禁用此功能 在Microsoft Windows(Vista或更高版本)上自动拉伸pygame显示 必需)。

三、详细的函数调用

   pygame可以理解成总管理程序,或者叫做隐形的总窗口,或者叫主应用,都没有错。

3.1 pygame.display.init()

   初始化显示模块

  • init() -> none

   初始化 pygame 显示模块。如果不执行该指令,显示模块无任何操作功能,什么时候它被初始化,什么时候开始具备操作功能。

   Pygame 会在初始化时从多个内部显示后端之一中进行选择。显示模式将根据平台和当前用户的权限进行选择。在初始化显示模块之前,可以设置环境变量 SDL_VIDEODRIVER 来控制使用哪个后端。这里列出了具有多种选择的系统。

Windows : windib, directx
Unix    : x11, dga, fbcon, directfb, ggi, vgl, svgalib, aalib

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

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

3.2 pygame.display.quit()

   销毁并退出显示模块
quit() -> none
   这将关闭整个显示模块。这意味着任何活动 显示器将关闭。这也将在 程序退出。

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

3.3 pygame.display.get_init()

   如果显示模块已初始化,则返回 True
get_init() -> bool
   如果pygame.displaypygame模块控制显示窗口和屏幕模块当前已初始化。

3.4 pygame.display.set_mode()

   初始化要显示的窗口或屏幕

set_mode(size=(0, 0), flags=0depth=0display=0vsync=0) -> Serface

   此函数将创建一个显示 Surface。传入的参数是 对显示类型的请求。实际创建的显示将是最好的 系统支持的可能匹配项。

  •    请注意,调用此函数会隐式初始化 ,如果 它以前没有初始化。pygame.display

  •    size 参数是一对数字,表示宽度和 高度。flags 参数是附加选项的集合。深度 argument 表示用于颜色的位数。

  •    返回的曲面可以像常规曲面一样绘制,但 更改最终将在监视器上看到。

   如果未传递或设置为 size 且 pygame 使用 1.2.10 或更高版本,则创建的 Surface 将具有与 当前屏幕分辨率。如果仅将 width 或 height 设置为(0, 0) , Surface 的宽度或高度将与屏幕分辨率相同。使用 1.2.10 之前的版本将引发异常。

   通常最好不要传递深度参数。它将默认为 系统的最佳和最快的颜色深度。如果您的游戏需要 可以使用此参数控制深度的特定颜色格式。皮加姆 将模拟不可用的颜色深度,这可能会很慢。

   请求全屏显示模式时,有时与 无法制作请求的大小。在这些情况下,pygame 将选择 最接近的兼容匹配项。返回的曲面仍将始终匹配 请求的大小。

   在高分辨率显示器(4k、1080p)和微型图形游戏(640x480)上 显示得非常小,因此它们无法播放。SCALED 可纵向扩展窗口 给你的。游戏认为这是一个 640x480 的窗口,但实际上它可以更大。 鼠标事件会针对您进行缩放,因此您的游戏不需要这样做。注意 SCALED 被视为实验性 API,将来可能会更改 释放。

  •    flags 参数控制所需的显示类型。有 有几种可供选择,您甚至可以使用 按位或运算符(竖线“|”字符)。这是显示 您要选择的标志:

pygame.FULLSCREEN 创建全屏显示
pygame.DOUBLEBUF 仅适用于 OPENGL
pygame.HWSURFACE(在 pygame 2 中已过时)硬件加速,仅在全屏中
pygame.OPENGL 创建 OpenGL 可渲染显示
pygame.RESIZABLE 显示窗口应该足够大
pygame.NOFRAME 显示窗口将没有边框或控件
pygame.SCALED 分辨率取决于桌面尺寸和比例图形
pygame.SHOWN 窗口以可见模式打开(默认)
pygame.HIDDEN 窗口以隐藏模式打开
pygame 2.0.0 的新功能: 和 SCALEDSHOWNHIDDEN

   通过将参数设置为 ,可以得到一个显示 使用垂直同步,但不能保证您一定会获得。仅限请求 对于设置了 OR 标志的调用完全有效,即使使用 那些设置。您获得的内容取决于硬件和驱动程序配置 pygame 正在运行的系统。下面是调用的示例用法 这可能会给你一个带有 vsync 的显示器:
vsync1set_mode()
pygame.OPENGL
pygame.SCALED

set_mode()flags = pygame.OPENGL | pygame.FULLSCREEN
window_surface = pygame.display.set_mode((1920, 1080), flags, vsync=1)

   垂直同步行为被认为是实验性的,可能会在将来的版本中发生变化。

pygame 2.0.0 新功能:vsync

基本示例:

# Open a window on the screen
screen_width=700
screen_height=400
screen=pygame.display.set_mode([screen_width, screen_height])

   显示索引表示使用默认显示。如果没有显示 提供了 index 参数,默认显示可以用 环境变量。0

   在 pygame 2.1.3 中更改: pygame 现在确保对此函数的后续调用会清除 窗口变为黑色。在旧版本中,这是一个实现细节 在主要平台上,此功能已通过测试。

3.5 pygame.display.get_surface()

   获取对当前设置的显示图面的引用

get_surface() -> Serface

   返回对当前设置的显示 Surface 的引用。如果没有显示模式 已设置,这将返回 None。

3.6 pygame.display.flip()

   将完整显示的 Surface 更新到屏幕。flip本是翻篇之意,每次翻篇后,需要update()显示,这是标配。

flip()-> none

   这将更新整个显示的内容。如果您的显示模式在 pygame 1 上使用标志 pygame.HWSURFACE 和 pygame.DOUBLEBUF,则这将等待垂直回扫并交换表面。

   当使用 pygame.OPENGL 显示模式时,这将执行 gl 缓冲区交换。

3.7 pygame.display.update()

   更新屏幕的某些部分以显示软件

update(rectangle=None) -> none
update(rectangle_list) -> none

   该函数就像用于软件显示的 pygame.display.flip() 的优化版本。它只允许更新屏幕的一部分,而不是整个区域。如果没有传递参数,它会像 pygame.display.flip() 一样更新整个 Surface 区域。

   请注意,调用 display.update(None) 意味着窗口的任何部分都不会更新。而 display.update() 意味着整个窗口都被更新。

   您可以向函数传递单个矩形或一系列矩形。一次传递多个矩形比使用单个或部分矩形列表多次调用更新更有效。如果传递一系列矩形,则可以安全地在列表中包含 None 值,该值将被跳过。

   此调用不能在 pygame.OPENGL 显示上使用,并且会生成异常。

3.8 pygame.display.get_driver()

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

3.9 pygame.display. Info()

   创建视频显示信息对象

Info() -> VideoInfo

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

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

3.10 pygame.display.get_wm_info()

   获取有关当前窗口系统的信息

get_wm_info() -> dict

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

3.11 pygame.display.get_desktop_sizes()

   获取活动桌面的大小

get_desktop_sizes() ->list

   此函数返回当前配置的大小 虚拟桌面作为整数的 (x, y) 元组的列表。

   列表的长度与连接的监视器的数量不同, 因为桌面可以镜像到多个显示器。桌面大小 不要指示硬件支持的最大显示器分辨率, 而是在操作系统中配置的桌面大小。

   为了使窗口适合当前配置的桌面,并尊重操作系统在全屏模式下配置的分辨率,应使用此函数来替换 pygame.display.list_modes() 的许多用例(只要适用)。

3.12 pygame.display.list_modes()

   此函数返回指定颜色深度的可能尺寸列表。如果给定参数没有可用的显示模式,则返回值将为空列表。返回值 -1 意味着任何请求的大小都应该有效(窗口模式可能就是这种情况)。模式大小按从最大到最小的顺序排序。

   如果深度为 0,则使用显示器的当前/最佳颜色深度。标志默认为 pygame.FULLSCREEN,但您可能需要为特定的全屏模式添加其他标志。

   显示索引 0 表示使用默认显示。

   从 pygame 2.0 开始,pygame.display.get_desktop_sizes() 已经接管了 pygame.display.list_modes() 的一些用例:

   要为非全屏窗口找到合适的尺寸,最好使用 pygame.display.get_desktop_sizes() 获取当前桌面的尺寸,然后选择较小的窗口尺寸。这样,即使显示器配置的分辨率低于硬件支持的最大分辨率,也能保证窗口适合。

   为了避免更改物理显示器分辨率,最好使用 pygame.display.get_desktop_sizes() 来确定全屏分辨率。强烈建议开发人员默认使用当前的物理显示器分辨率,除非用户明确请求不同的分辨率(例如在选项菜单或配置文件中)。

3.13 pygame.display.mode_ok()

   为显示模式选择最佳颜色深度

mode_ok(size, flags=0, depth=0, display=0->deepth

   此函数使用与 相同的参数。它 用于确定请求的显示模式是否可用。它会 如果无法设置显示模式,则返回。否则,它将返回一个 与所要求的显示器最匹配的像素深度。pygame.display.set_mode()0

   通常深度参数不会通过,但有些平台可以支持 多个显示深度。如果通过,它将提示哪个深度更好 火柴。

   如果无法设置传递的显示标志,则该函数将返回。0

   显示索引表示使用默认显示。0

3.14pygame.display.gl_get_attribute()

   获取当前显示的 OpenGL 标志的值

 gl_get_attribute(flag) ->value

   用flag调用后, 最好检查任何请求的 OpenGL 属性的值。有关有效标志的列表,请参阅。`

pygame.display.set_mode()
pygame.OPENGL
pygame.display.gl_set_attribute()`

3.15 pygame.display.gl_set_attribute()

   请求显示模式的 OpenGL 显示属性

gl_set_attribute(flag, value) ->none

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

   许多设置都是所要求的最小值。如果 OpenGL 无法提供所请求的属性,则使用 OpenGL 上下文创建窗口将会失败,但它可能会为您提供一个模板缓冲区,即使您没有请求任何属性,或者它可能会为您提供一个比请求的更大的模板缓冲区。

   这些flag是: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
GL_MULTISAMPLEBUFFERS

   是否启用多重采样抗锯齿。 默认值为 0(禁用)。

   设置为值 高于 0 以控制抗锯齿量。 典型值为 2 或 3。
GL_MULTISAMPLESAMPLES
GL_STENCIL_SIZE
模具缓冲区的最小位大小。默认值为 0。
GL_DEPTH_SIZE
深度缓冲区的最小位大小。默认值为 16。
GL_STEREO
1 启用立体 3D。默认值为 0。
GL_BUFFER_SIZE

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

在 pygame 2.5.0 中更改: 添加了对关键字参数的支持。

pygame 2.0.0 新功能: 其他属性:

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_CONTEXT_PROFILE_MASK

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

GL_CONTEXT_PROFILE_CORE             disable deprecated features
GL_CONTEXT_PROFILE_COMPATIBILITY    allow deprecated features
GL_CONTEXT_PROFILE_ES               allow only the ES featuresubset of OpenGL
GL_ACCELERATED_VISUAL

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

3.16 pygame.display.get_active()

   当屏幕上的显示处于活动状态时返回 True

get_active() -> bool

   当显示 Surface 被视为活动时返回 True 可在屏幕上呈现,并且可能对用户可见。这是 紧随其后的默认状态。 即使应用程序完全隐藏,此方法也可能返回 True 在另一个应用程序窗口后面。pygame.display.set_mode()

   如果显示 Surface 已图标化,则返回 False,或者 最小化(通过或通过操作系统) 特定方法,例如大多数上可用的最小化图标 桌面)。

3.17 pygame.display.iconify()

   该方法还可以出于其他原因返回 False,而无需 应用程序被用户显式图标化或最小化。一个 值得注意的例子是,如果用户有多个虚拟桌面和 显示器 Surface 不在活动的虚拟桌面上。

   注意:此函数返回 True 与 应用程序具有输入焦点。请参阅与输入焦点相关的 API。

3.18 pygame.display.iconify()

   图标化显示图面

iconify() -> bool

   请求将显示表面的窗口图标化或隐藏。并非所有系统和显示器都支持图标化显示。如果成功,该函数将返回 True。

   当显示图标化时 pygame.display.get_active() 将返回 False。当窗口被图标化时,事件队列应该接收 ACTIVEEVENT 事件。此外,当窗口在 pygame 2 上图标化时,事件队列还会收到 WINDOWEVENT_MINIMIZED 事件。

3.19 pygame.display.toggle_fullscreen()

   在全屏显示和窗口显示之间切换

toggle_fullscreen() -> int

   在窗口模式和全屏模式之间切换显示窗口。 使用 pygame 1 时,显示驱动程序支持不是很好,但有 PyGame 2 这是在全屏之间切换的最可靠方法。

  • pygame 1 中支持的显示驱动程序:
x11 (Linux/Unix)
wayland (Linux/Unix)`
  • pygame 2 中支持的显示驱动程序:
windows (Windows)
x11 (Linux/Unix)
wayland (Linux/Unix)
coco (OSX/Mac)

   注意:在 Windows 上不起作用, 除非窗口大小在pygame.display.list_modes()获取可用全屏模式的列表或 flag pygame.SCALED. See issue #2380.窗口是使用标志创建的。

3.20 pygame.display.set_gamma()

   更改硬件伽玛斜坡
set_gamma(红色,绿色=无,蓝色=无) -> bool
已弃用:此功能将在 SDL3 中消失。

在显示硬件上设置红色、绿色和蓝色 Gamma 值。如果 绿色和蓝色参数不会通过,它们都将与红色相同。 并非所有系统和硬件都支持伽玛斜坡(如果功能成功) 它将返回 .True如果 的 Gamma 值为 ,则创建线性颜色表。较低的值将 使显示屏变暗,值越高,值越高。1.0自 pygame 2.2.0 起已弃用。

3.21 pygame.display.set_gamma_ramp()

   通过自定义查找更改硬件 Gamma 斜坡

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

   自 pygame 2.2.0 起已弃用。
   在显示硬件上设置红色、绿色和蓝色伽玛值。如果绿色和蓝色参数未通过,它们都将与红色相同。并非所有系统和硬件都支持伽玛斜坡,如果该函数成功,它将返回 True。

   1.0 的伽玛值创建线性颜色表。较低的值将使显示变暗,较高的值将使显示变亮。

3.22 pygame.display.set_icon()

   更改显示窗口的系统映像
set_icon(Surface) -> none
   设置系统将用于表示显示窗口的运行时图标。 所有窗口默认为窗口图标的简单 pygame 徽标。

   请注意,调用此函数会隐式初始化 ,如果 它以前没有初始化。pygame.display

   您可以传递任何表面,但大多数系统都希望周围图像较小 32x32. 图像可以具有 colorkey 透明度,该透明度将传递给 系统。

   某些系统不允许窗口图标在显示后进行更改。 这个函数可以先调用来创建 设置显示模式前的图标。pygame.display.set_mode()

3.23 pygame.display.set_caption()

   设置当前窗口标题

set_caption(title, icontitle=None-> none

   如果显示器有窗口标题,此函数将更改窗口上的名称。在 pygame 1.x 中,一些系统支持替代的较短标题用于最小化显示,但在 pygame 2 中 icontitle 不执行任何操作。

   在 pygame 2.5.0 中更改: 添加了对关键字参数的支持。

3.24 pygame.display.get_caption()

   获取当前窗口标题

get_caption() -> (title, icontitle)

   返回显示窗口的标题和图标标题。在 pygame 2.x 中 这些值将始终相同。

3.25 pygame.display.set_palette()

   设置索引显示的显示调色板

set_palette(palette=None-> none

   这将更改 8 位显示器的视频显示调色板。这 不更改实际显示 Surface 的调色板,仅更改调色板 用于显示 Surface。如果未传递 palette 参数,则 系统默认调色板将被恢复。调色板是一系列三胞胎。RGB

   在 pygame 2.5.0 中更改: 添加了对关键字参数的支持。

3.26 pygame.display.get_num_displays()

   返回显示数
get_num_displays() -> int
   返回可用显示器的数量。如果出现,则始终为 1pygame.get_sdl_version()获取 SDL 的版本号返回低于 2 的主版本号。

   pygame 1.9.5 的新功能。

3.27 pygame.display.get_window_size()

   返回窗口或屏幕的大小
get_window_size() ->tuple
   返回初始化的窗口的大小pygame.display.set_mode()初始化要显示的窗口或屏幕. 如果使用,这可能与显示表面的大小不同。SCALED

   pygame 2.0.0 的新功能。

3.28 pygame.display.get_allow_screensaver()

   返回是否允许屏幕保护程序运行。
get_allow_screensaver() -> bool

   返回应用程序运行时是否允许运行屏幕保护程序。默认值为 False。默认情况下,pygame 不允许在游戏过程中使用屏幕保护程序。

   注意 某些平台没有屏幕保护程序或支持禁用屏幕保护程序。请参阅 pygame.display.set_allow_screensaver() 设置屏幕保护程序是否可以运行以获取屏幕保护程序支持的警告。

3.29 pygame.display.set_allow_screensaver()

   设置屏幕保护程序是否可以运行

set_allow_screensaver(bool-> none

   更改应用程序运行时是否允许使用屏幕保护程序。函数参数的默认值为 True。默认情况下,pygame 不允许在游戏过程中使用屏幕保护程序。

   如果屏幕保护程序由于此功能而被禁止,则当调用 pygame.quit()uninitialize 所有 pygame 模块时,它将自动允许运行。

   可以通过环境变量 SDL_HINT_VIDEO_ALLOW_SCREENSAVER 影响默认值,该变量可以设置为 0(禁用)或 1(启用)。

四、后记

   以上将display接口的全部属性项解释一遍l;为了实践和练习上述代码,我做了一些项目,请参阅我的资源:

https://download.csdn.net/download/gongdiwudu/88836913?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞天使-k8s知识点18-kubernetes实操3-pod的生命周期

文章目录 探针的生命周期流程图prestop 探针的生命周期 docker 创建:在创建阶段,你需要选择一个镜像来运行你的应用。这个镜像可以是公开的,如 Docker Hub 上的镜像,也可以是你自己创建的自定义镜像。创建自己的镜像通常需要编写一…

【AIGC】Stable Diffusion的采样器入门

在 Stable Diffusion 中,采样器(Sampler)是指用于生成图像的一种技术或方法,它决定了模型如何从潜在空间中抽样并生成图像。采样器在生成图像的过程中起着重要作用,影响着生成图像的多样性、质量和创造性。以下是对 St…

为自监督学习重构去噪扩散模型

在这项研究中,作者检验了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力。其理念是解构DDM,逐渐将其转化为经典的去噪自动编码器(DAE)。这一解构过程让大家能够探索现代DDM的各个组成部分如何影响自监…

python自学...

一、稍微高级一点的。。。 1. 闭包(跟js差不多) 2. 装饰器 就是spring的aop 3. 多线程

《合成孔径雷达成像算法与实现》Figure6.17

% rho_r c/(2*Fr)而不是rho_r c/(2*Bw) % Hsrcf exp函数里忘记乘pi了 clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; …

linux系统配置zabbix监控agent端

目录 客户端配置 启动服务 浏览器工具设置 创建主机群组 创建主机 创建监控项 ​编辑 ​编辑 创建触发器 查看监控 客户端配置 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # yum clean allyum install -y zab…

RCS系统之:浅谈系统设计与开发

这是我在开发RCS系统中的一些个人感悟与心得,写出来与大家一起分享下。是想到什么写到什么,如果有什么不对的,欢迎大家一起探讨。 有些人喜欢把WMS系统下面的系统统称为RCS系统。 但我不是这么想的,我这里把WMS/ERP系统与AGV之间…

详解CelebA数据集下载、读取【基于Python实现】

文章目录 简介CelebA数据集下载基于Python和PyTorch读取CelebA数据并可视化torchvision.datasets.CelebA介绍root根目录文件夹下CelebA文件存储方式如下可视化以及代码 参考资料 简介 CelebA数据集是由香港中文大学多媒体实验室发布的大规模人脸属性数据集,包含超过…

Rust 数据结构与算法:4栈:用栈实现进制转换

2、进展转换 将十进制数转换为二进制表示形式的最简单方法是“除二法”&#xff0c;可用栈来跟踪二进制结果。 除二法 下面实现一个将十进制数转换为二进制或十六进制的算法&#xff0c;代码如下&#xff1a; #[derive(Debug)] struct Stack<T> {size: usize, // 栈大…

蓝桥杯每日一题----单调栈和单调队列

单调栈和单调队列 单调栈 单调栈即栈内的元素是单调递减或者单调递增的&#xff0c;我们通过一个题目来理解。 单调栈模板题 题目描述 给出项数为 n 的整数数列 a 1 … a n a_1…a_n a1​…an​。 定义函数 f ( i ) f(i) f(i)代表数列中第 i 个元素之后第一个大于 a i …

Redis面试题整理(持续更新)

1. 缓存穿透&#xff1f; 缓存穿透是指查询一个一定不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到 DB 去查询&#xff0c;可能导致DB挂掉&#xff0c;这种情况大概率是遭到了攻击。 解决方案&#xff1a; …

python-分享篇-自定义词云图颜色

文章目录 准备代码效果 准备 运行本程序需要安装第三方模块matplotlib、jieba、wordcloud 和scipy &#xff0c;scipy要求1.0.0版本&#xff0c;否则程序将出现导入错误&#xff1a;ImportError: cannot import name ‘imread’ from ‘scipy.misc’ ImportError: cannot impo…

Linux下的自动化任务与计划任务:让你的系统更智能

在日常的Linux系统管理中&#xff0c;你是否经常需要定时执行某些任务&#xff0c;或者希望在系统启动时自动运行某些脚本&#xff1f;如果是的话&#xff0c;那么自动化任务和计划任务将是你的得力助手。它们可以帮助你提高系统效率、减少人工干预&#xff0c;并确保任务能够按…

【汇编】简单的linux汇编语言程序

一、Linux系统汇编语言 Linux系统上的汇编语言可以使用不同的语法风格&#xff0c;主要包括Intel语法和AT&T语法。这两种语法有各自的特点和风格区别&#xff0c;尽管它们表示的底层机器指令相同。下面分别对两种语法进行简要说明&#xff1a; Intel语法 Intel语法是由I…

有啥办法把百度地图某个点1公里范围内截个图?

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 东方欲晓&#xff0c;莫道君行早。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python白银交流群【上海新年人】问了一个地图截图的问题&#xff…

找不到目标和方向,怎么办?

现代社会里&#xff0c;许多人常见的症状&#xff0c;就是「空心病」。 什么是空心病呢&#xff1f;类似这样&#xff1a; 我知道要有目标&#xff0c;但我就是不知道想做什么&#xff0c;感觉对一切事物都提不起兴趣&#xff0c;没有动力&#xff0c;怎么办&#xff1f; 这个…

【C语言】socketpair 的系统调用

一、 Linux 内核 4.19socketpair 的系统调用 SYSCALL_DEFINE4(socketpair, int, family, int, type, int, protocol,int __user *, usockvec) {return __sys_socketpair(family, type, protocol, usockvec); } 这段代码定义了一个名为 socketpair 的系统调用。系统调用是操作…

AI算法参数个数本身优化空间

一、背景 AI算法的参数数量并非越多越好&#xff0c;也不是越少越好。参数的数量与模型的复杂度密切相关&#xff1a; 1. 参数多&#xff08;高复杂度模型&#xff09;&#xff1a; - 优点&#xff1a;模型具有更强的表达能力和拟合能力&#xff0c;对于复杂的、非线性的数据分…

C 语言 devc++ 使用 winsock 实现 windows UDP 局域网发送消息

U参考来源 U 这里移植到windows 上 &#xff0c;使用 devc 开发。 服务端代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <winsock2.h>int main() {WORD sockVersion MAKEWORD(2, 2);WSAD…

微服务多级缓存

多级缓存 1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后&#xff0c;先查询Redis&#xff0c;如果未命中则查询数据库&#xff0c;如图&#xff1a; 存在下面的问题&#xff1a; •请求要经过Tomcat处理&#xff0c;Tomcat的性能成为整个系统的瓶颈 •Redis缓存…