当前位置:   article > 正文

【Python】【进阶篇】三、Pygame的Display显示模块详解

【Python】【进阶篇】三、Pygame的Display显示模块详解

三、Pygame的Display显示模块详解

Pygame 使用pygame.display显示模块中的方法创建游戏的主窗口:

screen = pygame.display.set_mode(size=(),flags=0)
  • 1

上述函数有两个参数常用参数:

  • size :元组参数,用来设置主窗口的大小
  • flags :功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等。

flags 参数值见下表:

名称说明
pygame.FULLSCREEN创建一个全屏窗口。
pygame.HWSURFACE创建一个硬件加速窗口,必须和 FULLSCREEN 同时使用。
pygame.OPENGL创建一个 OPENGL 渲染窗口。
pygame.RESIZABLE创建一个可以改变大小的窗口。
pygame.DOUBLEBUF创建一个双缓冲区窗口,建议在 HWSURFACE 或者 OPENGL 时使用。
pygame.NOFRAME创建一个没有边框的窗口。

主窗口(screen)相当于游戏程序中尺寸最大的 Surface 对象,在这个最大的“画布”中,我们还可以添加其他“小”的 Surface 对象,这些对象以矩形的形式存在于主窗口中,它们共同组成了一个游戏程序。通过下列方法可以将一个 Surface 对象粘贴至主窗口上:

scrren.blit(source, dest, area=None, special_flags = 0)
  • 1

上述函数的常用参数:

  • source :表示要粘贴的 Surface 对象。
  • dest :主窗口中的一个标识的坐标位置,可以接受一个 (x,y) 元组,或者 (x,y,width,height) 元组,也可以是一个 Rect 对象;
  • area :接受一个 Rect 对象,默认为 None,如果提供该参数则相当于抠图操作,即在屏幕的指定区域显示想要的内容;
  • special_flags :可选参数,它是 Pygame.1.8 版本新增的功能,用于指定对应位置颜色的混合方式,参数值有 BLEND_RGBA_ADD、- BLEND_SUB 等。如果不提供该参数的情况下,默认使用 source 的颜色覆盖 screen 的颜色。

除了创建游戏的主窗口之外,display 模块还提供了许多的和“显示”相关的方法,比如设置游戏窗口的名称,如下表所示:

import sys
import pygame

# 使用pygame之前必须初始化
pygame.init()
# 设置主屏窗口
screen = pygame.display.set_mode((400, 400))
# 填充主窗口的背景颜色,参数值RGB(颜色元组)
screen.fill((156, 156, 156))
# 设置窗口标题
pygame.display.set_caption('Python自学网')
# 如果没有下列主循环代码,运行结果会一闪而过
while True:
    # 循环获取事件,监听事件
    for event in pygame.event.get():
        # 判断用户是否点了关闭按钮
        if event.type == pygame.QUIT:
            # 卸载所有模块
            pygame.quit()
            # 终止程序
            sys.exit()
    # 更新屏幕内容
    pygame.display.flip()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

补充 pygame.display 模块还提供了一些和“显示”相关的其他方法:

名称说明
pygame.display.get_surface()获取当前显示的 Surface 对象。
pygame.display.flip()更新整个待显示的 Surface 对象到屏幕上。
pygame.display.update()更新部分软件界面显示。
pygame.display.Info()产生一个 VideoInfo 对象,包含了显示界面的相关信息。
pygame.display.set_icon()设置左上角的游戏图标,图标尺寸大小为 32*32。
pygame.display.iconify()将显示的主窗口即 Surface 对象最小化,或者隐藏。
pygame.display.get_active()当前显示界面显示在屏幕上时返回 True,如果窗口被隐藏和最小化则返回 False。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/303581
推荐阅读
相关标签
  

闽ICP备14008679号