第二章 Pygame 基础
本章将深入 Pygame 的基本功能,包括如何初始化 Pygame、创建窗口、设置颜色、绘制基本图形和更新屏幕。这些基础操作是开发 Pygame 游戏的起点,掌握它们是实现更复杂功能的前提。
2.1 初始化 Pygame
在开始使用 Pygame 之前,你需要初始化 Pygame 的所有模块。这是确保你可以使用 Pygame 提供的各种功能的必要步骤。
import pygame# 初始化 Pygame
pygame.init()
pygame.init()
函数会初始化所有需要的 Pygame 模块。如果初始化成功,Pygame 将准备好处理图形、声音等任务。
此时,代码如果运行成功,你将在代码窗口看到,此时并没有创建游戏窗口:
2.2 创建窗口
创建一个窗口是启动 Pygame 游戏的第一步。窗口是显示图形和游戏内容的区域。如果运行成功,你可以看到一个黑色的游戏界面:
# 设置窗口尺寸
screen = pygame.display.set_mode((800, 600))# 设置窗口标题
pygame.display.set_caption("科技百宝箱的游戏 v1.0")#保持游戏窗口不退出
while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()quit()
2.3 设置颜色
Pygame 使用 RGB 颜色模式来定义颜色。每种颜色由红色、绿色和蓝色三种颜色的强度值组成,每个值在 0 到 255 之间。
# 定义颜色
白色 = (255, 255, 255)
黑色 = (0, 0, 0)
红色 = (255, 0, 0)
使用这些颜色值可以在绘制图形时进行颜色设置。
2.4 绘制基本图形
Pygame 提供了多种绘图函数来绘制基本图形,比如矩形、圆形和线条。
# 填充背景颜色
screen.fill("white")# 绘制矩形pygame.draw.rect(screen, "blue", (50, 200, 200, 100))# 绘制圆
pygame.draw.circle(screen, "red", (300, 200), 50, 0)# 绘制多边形
pygame.draw.polygon(screen, "green", ((100, 100), (200, 100), (200, 200), (100, 200)))# 绘制线条
pygame.draw.line(screen, "black", (0, 0), (100, 100), 5)# 更新屏幕
pygame.display.flip()
pygame.draw.rect()
, pygame.draw.circle()
, 和 pygame.draw.line()
函数分别用于绘制矩形、圆形和线条。如果代码运行成功,你将看到如下界面:
2.5 更新屏幕
在绘制图形之后,你需要更新屏幕以显示所有的更改。使用 pygame.display.flip()
函数可以实现这一点。
# 刷新屏幕以显示绘制的内容
pygame.display.flip()
pygame.display.flip()
函数会将所有的绘图操作应用到屏幕上,使得用户可以看到最新的图形状态。
最后本章全部代码如下:
import pygamepygame.init()screen = pygame.display.set_mode((640, 480))pygame.display.set_caption("科技百宝箱的游戏 v1.0")# 填充背景颜色
screen.fill("white")# 绘制矩形pygame.draw.rect(screen, "blue", (50, 200, 200, 100))# 绘制圆
pygame.draw.circle(screen, "red", (300, 200), 50, 0)# 绘制多边形
pygame.draw.polygon(screen, "green", ((100, 100), (200, 100), (200, 200), (100, 200)))# 绘制线条
pygame.draw.line(screen, "black", (0, 0), (100, 100), 5)# 更新屏幕
pygame.display.flip()while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()quit()
小结
本章介绍了 Pygame 的基础知识,包括初始化 Pygame、创建窗口、设置颜色、绘制基本图形和更新屏幕。掌握这些基础操作将帮助你建立 Pygame 项目的基础结构,并为更复杂的功能打下坚实的基础。接下来,你将学习如何处理游戏中的事件和用户输入,这将使你能够开发出交互性更强的游戏。