详解Pygame 绘制形状

  • Post category:Python

Pygame 是一种基于 Python 的游戏开发库,不仅可以用于游戏开发,还可以用于绘制各种图形和图表。在 Pygame 中,可以使用 Surface 对象和绘制函数来绘制各种形状,这些形状包括矩形,圆形,线段,多边形等等。

下面假设我们已经安装好 Pygame,接下来分别介绍绘制矩形、圆形、线段和多边形的方法。

绘制矩形

Pygame 中绘制矩形的函数为 pygame.draw.rect(),其参数包括:

  1. Surface 对象,表示在哪个 surface 上绘制矩形;
  2. 颜色,可以为 RGB 值或颜色名称,如 red
  3. 矩形的位置和大小,可以用一个元组(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(),其参数包括:

  1. Surface 对象,表示在哪个 surface 上绘制圆形;
  2. 颜色,可以为 RGB 值或颜色名称,如 red
  3. 圆心坐标,可以用一个元组表示;
  4. 半径,一个整数。

下面是一个绘制圆形的示例代码:

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(),其参数包括:

  1. Surface 对象,表示在哪个 surface 上绘制线段;
  2. 颜色,可以为 RGB 值或颜色名称,如 red
  3. 起点坐标,可以用一个元组表示;
  4. 终点坐标,可以用一个元组表示;
  5. 线宽,一个整数。

下面是一个绘制线段的示例代码:

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(),其参数包括:

  1. Surface 对象,表示在哪个 surface 上绘制多边形;
  2. 颜色,可以为 RGB 值或颜色名称,如 red
  3. 一个列表,包含多边形的各个定点的坐标;
  4. 线宽,一个整数。

下面是一个绘制多边形的示例代码:

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 官方文档。