基础窗体框架

pygame的程序应该有初始化、屏幕、渲染、画面更新、退出功能、画面刷新和游戏帧率设置这几个部分,下面是代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pygame
import sys

# 初始化 Pygame
pygame.init()

# 定义窗体大小
wind = (800, 600)

# 创建窗体
screen = pygame.display.set_mode(wind)
pygame.display.set_caption("Pygame窗体")

# 游戏循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

# 渲染/绘制操作
screen.fill((255, 255, 255)) # 设置背景色为白色

# 更新显示
pygame.display.flip()

# 控制帧率
pygame.time.Clock().tick(60)

运行结果为:

代码的结构如下:

  • 导入库: 导入Pygame和sys库。
  • 初始化Pygame: 使用pygame.init()初始化Pygame。
  • 定义窗体大小: 使用widthheight定义窗体的宽度和高度。
  • 创建窗体: 使用pygame.display.set_mode()创建窗体,使用pygame.display.set_caption()设置窗体标题。
  • 游戏循环: 使用一个无限循环来处理事件、更新游戏状态和渲染图像。
    • 事件处理: 使用pygame.event.get()获取所有事件,然后通过循环遍历这些事件来处理窗体关闭等事件。
    • 渲染/绘制操作: 使用screen.fill()填充窗体背景色为白色。在实际游戏中,这里会包含更复杂的渲染和绘制游戏元素的代码。
    • 更新显示: 使用pygame.display.flip()更新显示。
    • 控制帧率: 使用pygame.time.Clock().tick(60)控制帧率,这里的60表示帧率为60帧/秒。

    初始化

    当在 Python 中调用 pygame.init() 函数初始化 Pygame 时,它会执行以下操作:
  1. 初始化模块pygame.init() 会初始化 Pygame 库中的所有模块。Pygame 库由多个模块组成,以下为部分库:
     `pygame`:这是 Pygame 库的主模块。
     `pygame.locals`:这个模块定义了 Pygame 使用的所有全局常量。
     `pygame.color`:这个模块定义了 Pygame 使用的所有颜色常量。
     `pygame.display`:这个模块包含用于显示图像和文本的函数。
     `pygame.event`:这个模块包含用于处理事件(如键盘、鼠标、窗口事件等)的函数。
     `pygame.font`:这个模块包含用于处理字体的函数。
     `pygame.image`:这个模块包含用于处理图像的函数。
     `pygame.key`:这个模块包含用于处理键盘的函数。
     `pygame.mouse`:这个模块包含用于处理鼠标的函数。
     `pygame.time`:这个模块包含用于处理时间和帧率的函数。
     `pygame.version`:这个模块包含 Pygame 的版本信息。
     
    
  2. 注册事件类型:Pygame 会注册所有可能的鼠标和键盘事件类型,以便在游戏运行时能够检测这些事件。
  3. 设置默认字体:Pygame 会设置一个默认字体,用于在游戏中渲染文本。
  4. 初始化混音器(Mixer):Pygame 的混音器用于管理游戏中的音效和音乐。初始化混音器会设置一些基本的音效和音乐的播放功能。
  5. 设置随机数生成器:Pygame 会初始化一个随机数生成器,用于生成随机数。
  6. 设置视频显示:Pygame 会初始化视频显示,这通常意味着它会尝试加载显卡驱动程序,并设置一个默认的显示模式。
  7. 初始化模块特定的功能:每个 Pygame 模块都会执行一些特定的初始化操作,例如初始化图像处理模块、字体模块等。
  8. 设置错误处理:Pygame 会初始化错误处理机制,以便在游戏中发生错误时能够给出提示。
    请注意,pygame.init() 函数是同步的,它会阻塞调用线程直到所有初始化操作完成。在初始化过程中,Pygame 还会尝试自动检测系统配置,包括显卡、声卡等,以便在后续的游戏开发中正确使用这些设备。
    初始化 Pygame 后,您就可以开始创建游戏窗口、加载资源、编写游戏逻辑和处理用户输入了。在游戏结束时,应该调用 pygame.quit() 函数来正确关闭 Pygame,并释放相关资源。