python写游戏(Making Games with Python & Pygame)

颜色(Colors)

2018-07-26  本文已影响29人  庵下桃花仙

1、光的三原色 :红、绿、蓝
2、在Pygame中我们用三个整数的元组来表示颜色。元组中的第一个值是颜色中有多少红色。整数值0表示此颜色中没有红色,值255 表示颜色中存在最大红色量。第二个值是绿色,第三个值是蓝色。这些用于表示颜色的三个整数元组通常称为RGB值。
3、Pygame可以绘制16,777,216种不同的颜色(即256 x 256 x 256种颜色)。但是,如果尝试使用大于255的数字 或负数,您将收到类似“ ValueError:invalid color argument ”的错误。
4、例如,我们将创建元组(0,0,0)并将其存储在名为BLACK的变量中。没有红色,绿色或蓝色,产生的颜色完全是黑色。黑色是没有任何颜色。元组(255,255,255)表示最大量的红色,绿色和蓝色,表示白色。白色是红色,绿色和蓝色的完整组合。元组(255,0,0)表示最大红色量但没有绿色和蓝色量,因此得到的颜色为红色。类似地,(0,255,0)为绿色,(0,0,255) 为蓝色。

颜色 RGB值
Aqua(浅绿色) (0,255,255)
Blank(黑色) (0,0,0)
Blue(蓝色) ( 0, 0, 255)
Fuchsia(紫红色) (255,0,255)
Gray(灰色) (128, 128, 128)
Green(绿色) ( 0, 128, 0)
Lime(绿黄色) ( 0, 255, 0)
Maroon(栗色) (128, 0, 0)
Navy Blue(深蓝色) ( 0, 0, 128)
Olive(橄榄色) (128, 128, 0)
Purple(紫色) (128, 0, 128)
Red(红色) (255, 0, 0)
Silver(银灰色) (192, 192, 192)
Teal(墨绿色) ( 0, 128, 128)
White(白色) (255, 255, 255)
Yellow(黄色) (255, 255, 0)

透明的颜色(Transparent Colors)

假设透过红色玻璃看世界,世界都会有一层红色阴影。可以通过向颜色值添加第四个0到255整数值来模仿此效果。

第四个值被称为alpha value。用于衡量颜色的不透明度。通常,当您将像素绘制到曲面对象上时,新颜色将完全替换已存在的任何颜色。但是对于具有alpha值的颜色,您只需在已经存在的颜色上添加彩色色调。

例如,这个三元组的元组是绿色:(0,255,0)。但是如果我们为alpha值添加第四个整数,我们可以将其设为半透明绿色:(0,255,0,128)。Alpha值为255 是完全不透明的(即根本不透明)。颜色(0,255,0)和(0,255,0,255) 看起来完全相同。alpha值为0表示颜色完全透明。如果将任何alpha值为0的颜色绘制到曲面对象,它将无效,因为此颜色完全透明且不可见。

要使用透明颜色进行绘制,必须使用convert_alpha()方法创建Surface对象。例如,以下代码创建一个可以绘制透明颜色的Surface对象:

anotherSurface = DISPLAYSURF.convert_alpha()

一旦在存储在anotherSurface中的Surface对象上绘制了一些东西,那么另一个表面 可以“blitted”(即复制)到DISPLAYSURF,这样它就会出现在屏幕上。

上一篇 下一篇

猜你喜欢

热点阅读