[英]How to use different colors for each line in pygame.draw.lines
我最近开始学习pygame
,这就是我的问题。 无论如何我可以为使用 pygame.draw.lines 绘制的每条线使用不同的pygame.draw.lines
吗? 这是我的代码。
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480), pygame.SCALED)
screen.fill('white')
pygame.draw.lines(screen, 'red', True, [(10, 100), (20, 200), (30, 100)]) # all lines are red
while True:
pygame.display.update()
Output 我明白了
Output 我要
我试过的
pygame.draw.lines(screen, ['green', 'blue', 'orange'], True, [(10, 100), (20, 200), (30, 100)])
错误
ValueError: invalid color argument
换句话说,我想在下面的代码中实现我想要的,但使用pygame.draw.lines
pygame.draw.line(screen, 'green', (10, 100), (20, 200))
pygame.draw.line(screen, 'blue', (20, 200), (30, 100))
pygame.draw.line(screen, 'orange', (30, 100), (10, 100))
我检查了pygame.draw.lines
文档,但我不确定那里的color
参数是否需要我给出的列表。 它只提到“ Color or int or tuple(int, int, int, [int]))
”
这个例子是一个三角形,但在我的实际用例中,我想画一个十边形,如果我想为每条线使用不同的颜色,我不确定是否使用pygame.draw.line
10 次是通往 go 的方法。
PS:如果需要任何澄清,请告诉我。 非常感谢。
您必须分别绘制每个线段。 编写一个使用点列表的 function 和 colors 来画线:
def draw_colorful_line(surf, colors, closed, points, width=1):
for i in range(len(points)-1):
pygame.draw.line(surf, colors[i], points[i], points[i+1], width)
if closed:
pygame.draw.line(surf, colors[-1], points[-1], points[0], width)
使用 function 画线:
colors = ['green', 'blue', 'red']
points = [(10, 100), (20, 200), (30, 100)]
draw_colorful_line(screen, colors, True, points)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.