这篇主要是介绍最基本的一个 hello world 版的界面创建和一些常见的函数。
import pygame,sys
from pygame.locals import *
# 一般在 pygame 制作的程序开头都是要这行代码,不需要了解是原因,只需要知道这是为了使一些 Pygame 的函数可以工作。
# 或者当你遇到 pygame.error: font not initialized 的报错时,可以检查是否开头缺少这一行
pygame.init()
# 这里主要是返回一个窗口的 pygame.Surface 对象,给函数 set_mode() 传递一个 tuple 类型的值 (width,height),表示窗口的高和宽的像素
d = pygame.display.set_mode((400,400))
# 这里是为了使用函数 set_caption() 来设置窗口的顶部标题
pygame.display.set_caption("hello world")
# 这里是为了保证程序能一直显示页面,而且每个循环就是一帧,
while True:
# 在每一帧中,按时间顺序用户会发生一些时间,如点击鼠标、敲键盘等,pygame.event.Event 会记录每个事件,然后将在调用 pygame.event.get() 的时候将这一系列事件按发生的先后顺序返回
for event in pygame.event.get():
# 遍历 event 过程中发现是否有退出事件
if event.type == QUIT :
# pygame.init()函数有点相反,它可以停用 Pygame 库,一般来说 Python 会在程序退出时将其关闭,但是如果 Pygame 程序在调用 pygame.quit()之前终止,则 IDLE 中存在一个错误,该错误会导致 IDLE 挂起。
pygame.quit()
# 终止程序
sys.exit()
# 该函数将 pygame.display.set_mode() 返回的Surface 对象绘制到屏幕上(请记住,我们将该对象存储在 d 变量中)。 由于 Surface 对象没有更改,因此每次调用pygame.display.update() 时,都会在屏幕上重新绘制相同的黑色图像。
pygame.display.update()
# 那就是整个程序,无限 while 循环将从头开始。 该程序除了使黑屏出现在屏幕上,不断检查 QUIT 事件,然后一遍又一遍地将未改变的黑屏重新绘制到屏幕上之外,什么也不做。
效果图如下: