Python 上有没有包含每种颜色的文件?

kyl*_*e r 3 python pygame colors

我正在处理几个 Pygame 项目,尽管将​​我从上一个文件中制作的一些颜色复制并粘贴到我正在处理的下一个文件中很不方便。我想知道是否有代码可以制作成我导入的文件或我可以下载的代码,其中包含在 Pygame 中工作的 python 中的所有(或大部分)颜色。谢谢!

import pygame
pygame.init()

gameDisplay=pygame.display.set_mode((600,600)) 

pygame.display.set_caption("plz help")

white=(255,255,255)#r,g,b
black=(0,0,0)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
aquamarine2=(118,238,198)
Run Code Online (Sandbox Code Playgroud)

它可以工作并提供带有颜色的变量,但我希望有更多的多样性和更简单、更干净的方式来访问它。在网上,我只找到了查找特定颜色的方法,但没有找到批量和可复制和粘贴的格式。

Gle*_*osh 5

您可以通过查看字典pygame.color.THECOLORS来查看所有颜色。然而,所有名称和颜色值的字典很大(当我写这篇文章时为 657),因此查找并找到你想要的东西可能很麻烦。

我经常发现自己试图找到颜色名称,并发现这个片段非常方便:

import pygame
from pprint import  pprint

color_list = [(c, v) for c, v in pygame.color.THECOLORS.items() if 'slategrey' in c]
pprint(color_list)
Run Code Online (Sandbox Code Playgroud)

其输出:

[('darkslategrey', (47, 79, 79, 255)),
 ('slategrey', (112, 128, 144, 255))
 ('lightslategrey', (119, 136, 153, 255))]
Run Code Online (Sandbox Code Playgroud)

我在交互式会话中执行此操作以获取包含“slategrey”的所有名称,然后在我的实际代码中我可以使用我想要的名称,如下所示:

slategrey = pygame.Color("slategrey")
Run Code Online (Sandbox Code Playgroud)

然后在代码中像这样引用它:

screen.fill(slategrey,  pygame.Rect(0, 0, 100, 100))
Run Code Online (Sandbox Code Playgroud)

但是,如果您确实想查看 pygame.color.THECOLORS 中所有颜色的列表,您可以在定义了 THECOLORS 的pygames colordict 模块中查看它们。