Pygame 使用pygame.display显示模块中的方法创建游戏的主窗口:
上述函数有两个参数常用参数:
标志位 | 功能 |
---|---|
pygame.FULLSCREEN | 创建一个全屏窗口。 |
pygame.HWSURFACE | 创建一个硬件加速窗口,必须和 FULLSCREEN 同时使用。 |
pygame.OPENGL | 创建一个 OPENGL 渲染窗口。 |
pygame.RESIZABLE | 创建一个可以改变大小的窗口。 |
pygame.DOUBLEBUF | 创建一个双缓冲区窗口,建议在 HWSURFACE 或者 OPENGL 时使用。 |
pygame.NOFRAME | 创建一个没有边框的窗口。 |
体验过电脑游戏的朋友们都知道,当运行程序后会在电脑桌面上出现一个游戏的主窗口,这个主窗口的本质是一个 surface 对象,把理解为画布、画板、白纸在合适不过了,它相当于一个载体,用于承载一切游戏所用到的元素。假如您需要将一段文本方放置到主窗口中,那么您需要先创建一个包含文本的 surface 对象,之后再将它附加到主窗口上。简单的理解,就是将一张图 A 粘贴到另一张图 B 上。
主窗口(screen)相当于游戏程序中尺寸最大的 Surface 对象,在这个最大的“画布”中,我们还可以添加其他“小”的 Surface 对象,这些对象以矩形的形式存在于主窗口中,它们共同组成了一个游戏程序。通过下列方法可以将一个 Surface 对象粘贴至主窗口上:
下面对上述参数做简单的介绍:
除了创建游戏的主窗口之外,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('城东书院')
# 如果没有下列主循环代码,运行结果会一闪而过
while True:
# 循环获取事件,监听事件
for event in pygame.event.get():
# 判断用户是否点了关闭按钮
if event.type == pygame.QUIT:
#卸载所有模块
pygame.quit()
#终止程序
sys.exit()
#更新屏幕内容
pygame.display.flip()
程序的运行结果如下所示:
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。 |