圆形、线条和多边形
本课属于 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 像素。
多边形需要一个角点列表,并会填充这些点围成的形状,将最后一个点与第一个点连接起来。三个点构成三角形,四个点构成菱形。
挑战
简单在填充后,在海面上画一艘帆船。
- 太阳:一个
(255, 196, 0)的圆,圆心位于(380, 80),半径为40。 - 海面:一条从
(0, 280)到(480, 280)的(80, 160, 255)线,宽4像素。 - 船帆:一个
(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 在线编辑器