Pygame 是一种基于 Python 的游戏开发库,不仅可以用于游戏开发,还可以用于绘制各种图形和图表。在 Pygame 中,可以使用 Surface 对象和绘制函数来绘制各种形状,这些形状包括矩形,圆形,线段,多边形等等。
下面假设我们已经安装好 Pygame,接下来分别介绍绘制矩形、圆形、线段和多边形的方法。
绘制矩形
Pygame 中绘制矩形的函数为 pygame.draw.rect()
,其参数包括:
- Surface 对象,表示在哪个 surface 上绘制矩形;
- 颜色,可以为 RGB 值或颜色名称,如
red
; - 矩形的位置和大小,可以用一个元组(x, y, width, height) 表示。
下面是一个绘制矩形的示例代码:
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
size = (400, 300)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Draw Rectangle")
# 设置颜色
BLACK = (0, 0, 0)
BLUE = (0, 0, 255)
# 绘制矩形
pygame.draw.rect(screen, BLUE, [50, 50, 200, 100], 2)
pygame.draw.rect(screen, BLACK, [100, 100, 200, 100], 0)
# 更新屏幕
pygame.display.flip()
# 等待用户关闭窗口
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.quit()
在这个示例中,我们首先初始化了 Pygame,然后创建了一个窗口。接着我们定义了两种颜色:黑色和蓝色。然后分别使用 pygame.draw.rect()
函数绘制了一个蓝色矩形和一个黑色矩形。
由于绘制矩形的函数返回一个 Rect
对象,我们可以使用这个对象来获取矩形的位置和大小。
绘制圆形
Pygame 中绘制圆形的函数为 pygame.draw.circle()
,其参数包括:
- Surface 对象,表示在哪个 surface 上绘制圆形;
- 颜色,可以为 RGB 值或颜色名称,如
red
; - 圆心坐标,可以用一个元组表示;
- 半径,一个整数。
下面是一个绘制圆形的示例代码:
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
size = (400, 300)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Draw Circle")
# 设置颜色
BLACK = (0, 0, 0)
RED = (255, 0, 0)
# 绘制圆形
pygame.draw.circle(screen, RED, (200, 150), 50)
# 更新屏幕
pygame.display.flip()
# 等待用户关闭窗口
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.quit()
在这个示例中,我们使用了 pygame.draw.circle()
函数绘制了一个红色圆形,圆心坐标为 (200, 150),半径为 50。
绘制线段
Pygame 中绘制线段的函数为 pygame.draw.line()
,其参数包括:
- Surface 对象,表示在哪个 surface 上绘制线段;
- 颜色,可以为 RGB 值或颜色名称,如
red
; - 起点坐标,可以用一个元组表示;
- 终点坐标,可以用一个元组表示;
- 线宽,一个整数。
下面是一个绘制线段的示例代码:
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
size = (400, 300)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Draw Line")
# 设置颜色
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
# 绘制线段
pygame.draw.line(screen, GREEN, (50, 50), (200, 200), 5)
# 更新屏幕
pygame.display.flip()
# 等待用户关闭窗口
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.quit()
在这个示例中,我们使用了 pygame.draw.line()
函数绘制了一条绿色线段,起点坐标为 (50, 50),终点坐标为 (200, 200),线宽为 5。
绘制多边形
Pygame 中绘制多边形的函数为 pygame.draw.polygon()
,其参数包括:
- Surface 对象,表示在哪个 surface 上绘制多边形;
- 颜色,可以为 RGB 值或颜色名称,如
red
; - 一个列表,包含多边形的各个定点的坐标;
- 线宽,一个整数。
下面是一个绘制多边形的示例代码:
import pygame
# 初始化 Pygame
pygame.init()
# 设置窗口大小和标题
size = (400, 300)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Draw Polygon")
# 设置颜色
BLACK = (0, 0, 0)
YELLOW = (255, 255, 0)
# 绘制多边形
points = [(50, 50), (200, 50), (200, 200), (50, 200)]
pygame.draw.polygon(screen, YELLOW, points, 5)
# 更新屏幕
pygame.display.flip()
# 等待用户关闭窗口
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.quit()
在这个示例中,我们使用了 pygame.draw.polygon()
函数绘制了一个黄色多边形,定点坐标为 [(50, 50), (200, 50), (200, 200), (50, 200)],线宽为 5。
以上就是 Pygame 绘制形状的完整攻略,如果想要了解更多 Pygame 相关知识,可以查阅 Pygame 官方文档。