如何解决如何在 pygame.draw.lines 中为每一行使用不同的颜色
我最近开始学习 pygame
,这就是我的问题。无论如何,我可以为使用 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()
我得到的输出
我想要的输出
我尝试了什么
pygame.draw.lines(screen,['green','blue','orange'],100)])
ValueError: invalid color argument
换句话说,我想在下面的代码中实现我想要的但是使用 pygame.draw.lines
pygame.draw.line(screen,'green',(10,200))
pygame.draw.line(screen,100))
pygame.draw.line(screen,'orange',100))
我检查了 pygame.draw.lines
docs 但我不确定那里的 color
参数是否采用我给出的列表。它只提到“Color or int or tuple(int,int,[int]))
”
这个例子是一个三角形,但在我的实际用例中,我想画一个十边形,如果我想为每个使用不同的颜色,我不确定使用 pygame.draw.line
10 次是否合适线。
PS:如果需要任何说明,请告诉我。非常感谢。
解决方法
您必须分别绘制每条线段。编写一个函数,使用一系列点和颜色来画线:
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)
使用函数画线:
colors = ['green','blue','red']
points = [(10,100),(20,200),(30,100)]
draw_colorful_line(screen,True,points)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。