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

news2024/11/27 21:49:58

目录

  • 一、说明
  • 二、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 feature
                                    subset 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.coloradmin.cn/o/1450716.html

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

相关文章

qml之Control类型布局讲解,padding属性和Inset属性细讲

1、Control布局图 2、如何理解? *padding和*Inset参数如何理解呢? //main.qml import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 import QtQuick.Controls 1.4 import QtQml 2.12ApplicationWindow {id: windowvisible: …

ChatGPT绘图指南:DALL.E3玩法大全(二)

在前一篇文章中,我们介绍了什么是 DALL.E3 模型, DALL.E3 有什么优势,使用DALL.E3 的两种方法,以及DALL.E3 绘图的基本规则, 感兴趣的朋友请前往查看: ChatGPT绘图指南:DALL.E3玩法大全(一). 接下来&#…

插值(一)——多项式插值(C++)

插值 插值的作用是可以将原本比较难计算的函数转换为误差在一定范围内的多项式,比如在单片机中直接计算 x 、 log ⁡ 2 x \sqrt{x}、\log_2x x ​、log2​x之类的函数是比较麻烦的,但是使用插值的方法就可以将其转换为误差可控的只有乘法和加减法的多项…

EF Core 模型优先——根据类对象创建数据表

需要的nuget包: Microsoft.EntityframeworkCore.SqlServer (根据自己的数据库类型选择对应的nuget包) Microsoft.EntityframeworkCore.Tools Microsoft.VisualStudio.Web.CodeGeneration.Design 说明: (1&#xf…

【C++】C++11上

C11上 1.C11简介2.统一的列表初始化2.1 {} 初始化2.2 initializer_list 3.变量类型推导3.1auto3.2decltype3.3nullptr 4.范围for循环5.final与override6.智能指针7. STL中一些变化8.右值引用和移动语义8.1左值引用和右值引用8.2左值引用与右值引用比较8.3右值引用使用场景和意义…

机器学习中的10种非线性降维技术对比总结

降维意味着我们在不丢失太多信息的情况下减少数据集中的特征数量,降维算法属于无监督学习的范畴,用未标记的数据训练算法。 尽管降维方法种类繁多,但它们都可以归为两大类:线性和非线性。 线性方法将数据从高维空间线性投影到低维空间(因此…

排序算法---计数排序

原创不易,转载请注明出处。欢迎点赞收藏~ 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,其核心思想是通过统计待排序元素的个数来确定元素的相对位置,从而实现排序。 具体的计数排序算法步骤如下&#xff…

【Go语言】Go项目工程管理

GO 项目工程管理(Go Modules) Go 1.11 版本开始,官方提供了 Go Modules 进行项目管理,Go 1.13开始,Go项目默认使用 Go Modules 进行项目管理。 使用 Go Modules的好处是不再需要依赖 GOPATH,可以在任意位…

[leetcode刷题] 组合

对于递归回溯我觉得是需要多写多分析,递归三部曲:1.返回值和参数;2.终止条件;3.单层递归逻辑 1.通常情况下返回值都是void,参数的话根据实际需求设计,如果设置了全局变量那输入参数就可以少写几个&#xf…

Elasticsearch:特定领域的生成式 AI - 预训练、微调和 RAG

作者:来自 Elastic Steve Dodson 有多种策略可以将特定领域的知识添加到大型语言模型 (LLM) 中,并且作为积极研究领域的一部分,正在研究更多方法。 对特定领域数据集进行预训练和微调等方法使 LLMs 能够推理并生成特定领域语言。 然而&#…

009集——磁盘详解——电脑数据如何存储在磁盘

很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。 首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0…

猫头虎分享已解决Bug ‍ || Go Error: no Go files in /path/to/directory

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

JVM(5)面试篇

1 什么是JVM? 关联课程内容 基础篇-初识JVM基础篇-Java虚拟机的组成 回答路径 JVM的定义作用功能组成 1、定义: JVM 指的是Java虚拟机( Java Virtual Machine )。JVM 本质上是一个运行在计算机上的程序,他的职责是…

猫头虎分享已解决Bug ‍ || Python Error: IndentationError: expected an indented block

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Ollama 可以在 Windows 上运行了

Ollama 可以在 Windows 上运行了 0. 引言1. 下载 Ollma 安装文件2. 安装 Ollama3. 使用 Ollama 0. 引言 Ollama 终于可以在 Windows 上运行了,一直以来都是 “Coming soon”。 运行 Mixtral 8*7B 试了一下,推理速度和推理效果都很不错。 而且模型的下…

【mysql】数据约束

一、数据约束: 什么是约束? 为了确保表中的数据的完整性(准确性、正确性),为表添加一些限制。是数据库中表设计的一个最基本规则。使用约束可以使数据更加准确,从而减少冗余数据(脏数据)。 数据库完整性约…

PowerShell搭建vue起始项目

Windows PowerShell搭建vue起始项目 搜索PowerShell,以管理员身份运行。 复制文件夹路径 cd 到这个文件夹位置 命令行创建项目:vue create 项目名 这里写自己的项目名就行,我写的yeb vue create yeb 创建成功后是这样的 有颜色的就是选中的&#xff…

【区块链技术开发语言】在ubuntu18 系统环境下命令操作安装GO语言开发环境

要在Ubuntu 18系统上安装GO语言开发环境,您可以按照以下步骤进行: 打开终端(Ctrl + Alt + T)。 使用以下命令下载GO语言安装包: 或者手动打开链接下载: wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz确保替换链接中的版本号为最新版本。 解压下载的安装包…

Stable Diffusion系列(五):原理剖析——从文字到图片的神奇魔法(扩散篇)

文章目录 DDPM论文整体原理前向扩散过程反向扩散过程模型训练过程模型生成过程概率分布视角参数模型设置论文结果分析 要想完成SD中从文字到图片的操作,必须要做到两步,第一步是理解文字输入包含的语义,第二步是利用语义引导图片的生成。下面…

计网体系结构

计算机网络的概述 概念 网络:网状类的东西或系统。 计算机网络:是一个将分散的、具有独立性功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。即计算机网络是互连(通过通信链路互连…