详解Pygame 绘制形状

  • Post category:Python

Pygame 是基于 Python 的 2D 游戏开发库,它提供了丰富的图形操作接口,可以用来绘制各种形状、文字、图像等。绘制形状是 Pygame 中最基础的操作之一,在游戏中的场景绘制、物品绘制、HUD 绘制中都有广泛的应用。

Pygame 中通过 pygame.draw 模块提供了绘制形状的方法,其中最常用的是 pygame.draw.rect()pygame.draw.circle() 方法。

pygame.draw.rect() 方法

pygame.draw.rect(surface, color, rect, width=0) 方法用于绘制矩形,参数说明如下:

  • surface:Surface 对象,表示矩形绘制的目标表面;
  • color:颜色,可用字符串、元组或 Color 对象表示;
  • rect:矩形区域,表示为 (left, top, width, height) 的元组;
  • width:线条宽度,0 表示填充矩形。

示例代码:

import pygame

pygame.init()

# 创建窗口
window_size = (640, 480)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("绘制矩形")

# 绘制矩形
rect_surface = pygame.Surface((100, 100))
rect_surface.fill((0, 255, 0))
rect_rect = rect_surface.get_rect()
rect_rect.center = (320, 240)
pygame.draw.rect(screen, (255, 0, 0), rect_rect, 5)

# 刷新屏幕
pygame.display.flip()

# 监听事件
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

上述代码中,首先创建窗口,然后创建一个 Surface 对象,填充成绿色,并居中在窗口中间,最后使用 pygame.draw.rect() 方法在 screen 目标表面上绘制一个红色矩形框。运行程序后,可以看到一个居中的绿色矩形和它的红色矩形框。

pygame.draw.circle() 方法

pygame.draw.circle(surface, color, center, radius, width=0) 方法用于绘制圆形,参数说明如下:

  • surface:Surface 对象,表示圆形绘制的目标表面;
  • color:颜色,可用字符串、元组或 Color 对象表示;
  • center:圆心位置,表示为 (x, y) 的元组;
  • radius:半径长度;
  • width:线条宽度,0 表示填充圆。

示例代码:

import pygame

pygame.init()

# 创建窗口
window_size = (640, 480)
screen = pygame.display.set_mode(window_size)
pygame.display.set_caption("绘制圆形")

# 绘制圆形
pygame.draw.circle(screen, (0, 0, 255), (320, 240), 50, 5)

# 刷新屏幕
pygame.display.flip()

# 监听事件
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

上述代码中,首先创建窗口,然后使用 pygame.draw.circle() 方法在窗口中央绘制一个蓝色的圆形,边框宽度为 5。运行程序后,可以看到一个蓝色的圆形。

除了这两种形状,Pygame 中还支持绘制多边形、椭圆、线条等形状,具体使用方法可以参考 Pygame 的官方文档:https://www.pygame.org/docs/ref/draw.html