Menu
CoddyTech

圆形、线条和多边形

本课属于 Coddy Pygame 学习旅程的“游戏循环”单元。第 9 课,共 35 课。

到目前为止,你画的都是矩形。pygame.draw 还支持更多形状,它们的开头都一样:要绘制的表面,然后是颜色。

pygame.draw.circle(screen, (255, 196, 0), (100, 80), 30)
pygame.draw.line(screen, (240, 240, 240), (0, 200), (480, 200), 3)
pygame.draw.polygon(screen, (60, 200, 120), [(240, 40), (280, 120), (200, 120)])

圆需要指定圆心和半径。与矩形不同,圆的位置由圆心决定,而不是左上角。半径为 30 时,圆的直径是 60 像素。

线段需要指定两个端点,最后还要指定以像素为单位的宽度。不指定宽度时,线宽为 1 像素。

多边形需要一个角点列表,并会填充这些点围成的形状,将最后一个点与第一个点连接起来。三个点构成三角形,四个点构成菱形。

challenge icon

挑战

简单

在填充后,在海面上画一艘帆船。

  1. 太阳:一个 (255, 196, 0) 的圆,圆心位于 (380, 80),半径为 40。
  2. 海面:一条从 (0, 280) 到 (480, 280) 的 (80, 160, 255) 线,宽 4 像素。
  3. 船帆:一个 (235, 80, 80) 的多边形,顶点为 (240, 120)、(240, 250) 和 (160, 250)。

按下 “开始”:画面上会出现太阳、海面和红色船帆。然后点击 “检查”。

亲手试试

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Sailboat")
clock = pygame.time.Clock()

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((30, 30, 46))
    # 在这里画出太阳、大海和船帆
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

游戏循环中的所有课

自己练习: Pygame 在线编辑器