类型#
- class arcade.types.Color(r: int, g: int, b: int, a: int = 255)[源代码]#
-
A
tuple
表示RGBA颜色的子类。此类提供了有用的实用程序方法和属性。当性能或简洁性很重要时,arcade通常允许您使用普通的
tuple
而是RGBA值。所有通道都是从0到255的字节值,包括0和255。如果其中任何一个超出此范围,则会引发
ByteRangeError
将被引发,这可以作为ValueError
。示例:
>>> from arcade.types import Color >>> Color(255, 0, 0) Color(r=255, g=0, b=0, a=0) >>> Color(*rgb_green_tuple, 127) Color(r=0, g=255, b=0, a=127)
- 参数:
r -- 颜色的红色通道,介于0和255之间
g -- 颜色的绿色通道,介于0和255之间
b -- 颜色的蓝色通道,介于0和255之间
a -- 颜色的Alpha或透明度通道,介于0和255之间
- classmethod from_gray(brightness: int, a: int = 255) Self [源代码]#
返回给定亮度的灰色阴影。
示例::
>>> custom_white = Color.from_gray(255) >>> print(custom_white) Color(r=255, g=255, b=255, a=255) >>> half_opacity_gray = Color.from_gray(128, 128) >>> print(half_opacity_gray) Color(r=128, g=128, b=128, a=128)
- 参数:
brightness -- 树荫应该有多亮
a -- 透明度值,默认情况下完全不透明
- 返回:
- classmethod from_hex_string(code: str) Self [源代码]#
使用长度为3、4、6或8个十六进制数字的十六进制代码生成颜色
在它前面加一个英镑符号 (
#
/散列符号)是可选的。如果存在,它将被忽略。十六进制数字的大写 (
'f'
VS'F'
)并不重要。3位和6位十六进制代码将被视为不透明度为255。
将扩展3位和4位十六进制代码。
示例:
>>> Color.from_hex_string("#ff00ff") Color(r=255, g=0, b=255, a=255) >>> Color.from_hex_string("#ff00ff00") Color(r=255, g=0, b=255, a=0) >>> Color.from_hex_string("#FFF") Color(r=255, g=255, b=255, a=255) >>> Color.from_hex_string("FF0A") Color(r=255, g=255, b=0, a=170)
- classmethod from_iterable(iterable: Iterable[int]) Self [源代码]#
从具有3-4个元素的:Py:Class`Iterable`创建颜色
如果传递的Iterable已经是一个Color实例,它将原封不动地返回。如果迭代量的元素少于3个或多于4个,则将引发ValueError。
否则,该函数将尝试创建一个新的颜色实例。适用通常的规则,即所有值必须介于0和255之间(包括0和255)。
- 参数:
iterable -- 可解包为3或4个元素的迭代数,每个元素介于0和255之间(包括0和255)。
- classmethod from_normalized(color_normalized: Tuple[float, float, float, float]) Self [源代码]#
将规格化(0.0到1.0)通道转换为RGBA颜色
如果输入通道未标准化,则会引发
arcade.utils.NormalizedRangeError
将会被唤醒。这是:Py:Class`ValueError`的子类,可以这样处理。示例:
>>> Color.from_normalized((1.0, 0.0, 0.0, 1.0)) Color(r=255, g=0, b=0, a=255) >>> normalized_half_opacity_green = (0.0, 1.0, 0.0, 0.5) >>> Color.from_normalized(normalized_half_opacity_green) Color(r=0, g=255, b=0, a=127)
- 参数:
color_normalized -- 归一化(从0.0到1.0)RGBA值的颜色。
- 返回:
- classmethod from_uint24(color: int, a: int = 255) Self [源代码]#
从无符号3字节(24位)整数返回颜色。
这些整数可以介于0和16777215之间 (
0xFFFFFF
),包括在内。示例::
>>> Color.from_uint24(16777215) Color(r=255, g=255, b=255, a=255) >>> Color.from_uint24(0xFF0000) Color(r=255, g=0, b=0, a=255)
- 参数:
color -- 介于0和16777215之间的3字节整数 (
0xFFFFFF
)a -- 一个介于0和255之间(包括0和255)的Alpha值。
- classmethod from_uint32(color: int) Self [源代码]#
返回给定无符号4字节(32位)整数的颜色元组
字节被解释为R、G、B、A。
示例:
>>> Color.from_uint32(4294967295) Color(r=255, g=255, b=255, a=255) >>> Color.from_uint32(0xFF0000FF) Color(r=255, g=0, b=0, a=255)
- 参数:
color -- 介于0和4294967295之间的整数 (
0xFFFFFFFF
)
- classmethod random(r: int | None = None, g: int | None = None, b: int | None = None, a: int | None = None) Self [源代码]#
返回随机颜色。
这些参数是可选的,可用于固定特定通道的值。如果通道不是固定的,它将被随机生成。
示例:
# Randomize all channels >>> Color.random() Color(r=35, g=145, b=4, a=200) # Random color with fixed alpha >>> Color.random(a=255) Color(r=25, g=99, b=234, a=255)
- 参数:
r -- 红色通道的固定值
g -- 绿色通道的固定值
b -- 蓝色通道的固定值
a -- Alpha通道的固定值
- swizzle(swizzle_string: str) Tuple[int, ...] [源代码]#
以与传递的字符串相同的顺序获取通道值的元组。
这是在模仿嗡嗡声 as implemented in GLSL
>>> from arcade.types import Color >>> color = Color(180, 90, 0, 255) >>> color.swizzle("abgr") (255, 0, 90, 180)
您还可以使用任意长度的swizzle字符串和大写字母。任何大写字母都将被视为小写的等价物。
- 参数:
swizzle_string -- 中以字母形式表示的频道名称字符串
"RGBArgba"
。- 返回:
与输入字符串顺序相同的元组。
- a#
- b#
- g#
- normalized#
将此颜色作为4个规格化浮点数的元组返回。
示例:
>>> arcade.color.WHITE.normalized (1.0, 1.0, 1.0, 1.0) >>> arcade.color.BLACK.normalized (0.0, 0.0, 0.0, 1.0) >>> arcade.color.TRANSPARENT_BLACK.normalized (0.0, 0.0, 0.0, 0.0)
- r#