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

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

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

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

  1. 此函数将创建一个显示 Surface 。传入的参数是对显示类型的请求。实际创建的显示将是系统支持的最佳匹配。
  2. 返回的 Surface 会被绘制成规则 Surface ,但最终将在监视器上看到区别。
  3. 如果没有size被传递或设置为(0,0),并且pygame使用SDL版本1.2.10或更高版本,则创建的 Surface 将具有与当前屏幕分辨率相同的大小。如果只有宽度或高度设置为0,则Surface的对应参数将与屏幕分辨率相同。
  4. 通常最好不要传递 depth 参数,将默认使用系统的最佳和最快颜色深度。如果你的游戏需要特定的颜色格式,你可以用这个参数来控制色深。Pygame将模拟一个不可用的颜色深度,它会很慢。
  5. 请求全屏显示模式时,有时无法与请求的大小完全匹配。在这些情况下,pygame将选择最接近的兼容匹配项,但返回的曲面仍将始终与请求的大小匹配。
  6. 在高分辨率显示器(4k,1080p)和微型图形游戏(640x480)上,因显示的非常小而无法播放时,需使用鼠标事件按比例缩放窗口。游戏认为它是一个640x480的窗口,但实际上它可以更大。
  7. 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

  1. 这将更新整个显示的内容。如果显示模式使用的flags是 pygame.HWSURFACE 和 pygame.DOUBLEBUF ,则将等待垂直回溯并交换曲面。如果使用的是不同类型的显示模式,则只需更新曲面的全部内容。
  2. 当使用 pygame.OPENGL 显示模式时,这将执行缓冲区交换。

pygame.display.update()

功能:软件显示屏幕的更新部分

属性:

  • update(rectangle=None) -> None
  • update(rectangle_list) -> None
  1. 此函数类似于用于软件显示的pygame.display.flip()的优化版本。它只允许更新屏幕的一部分,而不是整个区域。如果没有传递参数,它将更新整个表面积,如pygame.display.flip()。
  2. 可以向函数传递单个矩形或一系列矩形。一次传递多个矩形比使用单个或部分矩形列表多次调用update更有效。如果传递了一个不包含任何值矩形序列,则会被跳过。
  3. 此调用不能用于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. 此函数返回指定颜色深度的可能大小列表。如果给定参数没有可用的显示模式,则返回值将为空列表。返回值-1意味着任何请求的大小都应该正常工作(这可能是窗口模式的情况)。模式大小按大小排序。
  2. 如果depth为0,SDL将为显示选择当前/最佳颜色深度。flags默认为pygame.FULLSCREEN,但您可能需要为特定的全屏模式添加其他标志。
  3. 显示索引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

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

  1. 使用pygame.OPENGL flags调用pygame.display.set_mode()时,pygame会自动处理设置OPENGL属性,如颜色和双缓冲。OpenGL提供了其他一些您可能需要控制的属性。将这些属性之一作为flags传递,并传递相应的值。这必须在pygame.display.set_mode()之前调用。
  2. 许多设置是请求最小值。如果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

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

注意:返回True的函数与应用程序是否具有输入焦点无关。参阅 pygame.key.get_focused() 和 pygame.mouse.get_focused() 与输入焦点相关的API。

pygame.display.iconify()

功能:使显示面图标化

属性:iconify() -> bool

  1. 请求将显示曲面的窗口设置为图标化或隐藏。并非所有系统和显示器都支持图标化显示。如果成功,函数将返回True。
  2. 当显示为图标化时,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

  1. 设置显示硬件上的红色、绿色和蓝色伽马值。如果绿色和蓝色的参数没有通过,它们都将与红色相同。并非所有系统和硬件都支持gamma斜坡,如果函数成功,它将返回True。
  2. 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

  1. 设置系统用来表示显示窗口的运行时图标。所有窗口默认为窗口图标的简单pygame徽标。
  2. 可以传递任何Surface,但大多数系统需要一个32x32左右的较小图像。图像可以具有彩色键透明度,该透明度将传递给系统。
  3. 某些系统不允许窗口图标在显示后更改。此函数可以在 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.

 

 

整理自:https://www.pygame.org/docs/ref/display.html

你可能感兴趣的:(pygame中display模块方法详解)