gpt4 book ai didi

python - 如何在 pygame.draw.lines 中为每一行使用不同的颜色

转载 作者:行者123 更新时间:2023-12-04 11:26:07 27 4
gpt4 key购买 nike

最近开始学习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()
我得到的输出
Output I get
我想要的输出
Output I want
我试过的
 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 docs但我不确定 color 是否那里的参数需要一个我给出的列表。它只提到“ Color or int or tuple(int, 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, colors, True, points)

关于python - 如何在 pygame.draw.lines 中为每一行使用不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67085359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com