完整的代码

import pygame

pygame.init()

WIDTH = 300
HEIGHT = 200
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption('My Game')

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 255)

SCREEN.fill(RED)
pygame.display.flip()

is_running = True
while is_running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            is_running = False

pygame.quit()

导入和初始化 pygame

正如我们对 python 中的任何模块一样,我们需要导入 pygame:

import pygame

然后我们初始化所有导入的 pygame 模块:

pygame.init()

这用于初始化所有 pygame 模块。没有这个,模块将无法工作

定义常量

然后我们在这里定义一些常量:

WIDTH = 300
HEIGHT = 200
SCREEN = pygame.display.set_mode((WIDTH, HEIGHT))

WIDTHHEIGHT 常量用于创建窗口,窗口宽度为 300 像素,高度为 200 像素。SCREENpygame.display.set_mode((WIDTH, HEIGHT)) 中使用的函数将设置显示模式并返回 Surface 对象 。注意这个函数的参数是前面定义的 WIDTHHEIGHT 常量。

设置窗口的名称

然后我们使用此函数将窗口名称更改为 My Game:

pygame.display.set_caption('My Game')

定义颜色

之后我们定义了 6 种可以在我们的窗口中使用的颜色:

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
YELLOW = (255, 255, 255)

定义颜色时,我们输入 3 个值,范围在 0 到 255 之间 .pygame.Color 类通常采用以下格式:

COLOUR = (r, g, b, a)

r 参数设置颜色的红色值时,g 参数设置颜色的绿色值,b 参数设置颜色的蓝色值。a 参数设置颜色的 alpha 值。

然后我们给出这个命令:

SCREEN.fill(RED)

这是一个 pygame.Surface.fill 函数,它填充 Surface 对象,我们的屏幕,红色。

使用 pygame.display.flip()

然后我们使用这个功能

pygame.display.flip()

这基本上使我们在屏幕 Surface 上绘制的所有内容都变得可见并更新整个显示的内容。没有这一行,用户就不会在他们的 pygame 屏幕上看到任何内容。

游戏循环

接下来的几行是所谓的游戏循环

要开始这个,我们创建一个变量并将其设为 True:

is_running = True

这样我们就可以开始我们的 while 循环了:

while is_running:

这将在整个游戏中运行。

在它最基本的形式中,pygame 有事件,它接受用户输入,例如按下按钮或鼠标点击。Pygame 通过事件队列处理这些事件。我们可以使用 for 循环从事件队列中获取这些事件:

for event in pygame.event.get(): 

这基本上是通过事件列表,我们的事件队列。这些是接下来的两行:

if event.type == pygame.QUIT:
    is_running = False    

这将使得当用户按下顶角的退出按钮时,会发生类型为 pygame.QUIT 的事件。

然后这结束了 while 循环,因为 is_running 现在是 False 并且脚本移动到最后一行:

pygame.quit()

哪些没有初始化 pygame 模块。