为了账号安全,请及时绑定邮箱和手机立即绑定

Python 中的 pygame.draw.rect() 有哪些不同的颜色?

Python 中的 pygame.draw.rect() 有哪些不同的颜色?

守着一只汪 2023-03-16 10:58:00
我正在学习使用 PyGame 制作贪吃蛇游戏。现在代码是这样的(它不完整,请不要给出制作贪吃蛇游戏的实际代码!):# Setting up PyGame and a windowimport pygamepygame.init()dis = pygame.display.set_mode((400, 300))pygame.display.update()pygame.display.set_caption('Snake game by snoopstick')game_over = False# Creating Colorsblue = (0, 0, 225)red = (255, 0, 0)while not game_over:    for event in pygame.event.get():        if event.type == pygame.QUIT:            game_over = True    pygame.draw.rect(dis, blue, [200, 150, 10, 10])    pygame.display.update()pygame.quit()quit()你可以看到我已经可以制作红色和蓝色,但我想知道如何制作更多颜色或更多不同类型的游戏。有哪些不同的参数可以代替蓝色和红色。
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

pygame 有大量预定义的命名颜色,这很有用。您无需自己重新定义它们,只需从 pygames 预定义列表中获取红色和蓝色即可:


red = pygame.Color('red')

blue = pygame.Color('blue')

你可以通过查看字典 pygame.color.THECOLORS 直接看到所有的颜色,但是要遍历很多颜色。这是我对类似问题的先前回答的回答的链接。也许我应该把它留给答案的链接?不确定,所以我将包含足够有用的内容。


我发现这个代码片段很容易在交互式会话中执行,然后我可以在我的实际代码中使用我想要的那个。


import pygame

from pprint import  pprint


def print_colors(color_name):

    color_list = [(c, v) for c, v in pygame.color.THECOLORS.items() if color_name in c]

    pprint(color_list)


print_colors('slategrey')

输出:


[('darkslategrey', (47, 79, 79, 255)),

 ('slategrey', (112, 128, 144, 255))

 ('lightslategrey', (119, 136, 153, 255))]

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


darkslategrey = pygame.Color('darkslategrey')


查看完整回答
反对 回复 2023-03-16
?
倚天杖

TA贡献1828条经验 获得超3个赞

颜色是红色、绿色和蓝色的混合。就像油漆一样。您可以使用 0 到 255(含)之间的值来控制混合中每个的数量。

您可以使用 PygameColor类制作任何您想要的颜色 - https://www.pygame.org/docs/ref/color.html

查看Color类构造函数,了解创建颜色的各种方法。

如果您想尝试一些颜色混合,请使用HTML 颜色选择器页面


查看完整回答
反对 回复 2023-03-16
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

这些是RGB 颜色,提供的链接中有一个选择器!



查看完整回答
反对 回复 2023-03-16
  • 3 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信