Box3RGBAColor / GameRGBAColor RGBA颜色
这是一个服务端API
该API仅在服务端脚本使用
- 查阅官方文档
查阅官方文档(Arena)
查阅社区文档(Arena) Box3RGBAColor /GameRGBAColor 是表示RGBA颜色的一个类,包含透明度
构造函数¶
创建一个RGBA颜色
示例
new Box3RGBAColor(0, 0, 0, 1) // 黑色
new Box3RGBAColor(1, 1, 1, 1) // 白色
new Box3RGBAColor(1, 0, 0, 1) // 红色
new Box3RGBAColor(0, 1, 0, 1) // 绿色
new Box3RGBAColor(0, 0, 1, 1) // 蓝色
new Box3RGBAColor(1, 1, 0, 1) // 黄色
new Box3RGBAColor(0, 1, 1, 1) // 青色
new Box3RGBAColor(1, 0, 1, 1) // 紫色
new Box3RGBAColor(0, 0, 0, 0.5) // 黑色,但是半透明
new GameRGBAColor(0, 0, 0, 1) // 黑色
new GameRGBAColor(1, 1, 1, 1) // 白色
new GameRGBAColor(1, 0, 0, 1) // 红色
new GameRGBAColor(0, 1, 0, 1) // 绿色
new GameRGBAColor(0, 0, 1, 1) // 蓝色
new GameRGBAColor(1, 1, 0, 1) // 黄色
new GameRGBAColor(0, 1, 1, 1) // 青色
new GameRGBAColor(1, 0, 1, 1) // 紫色
new GameRGBAColor(0, 0, 0, 0.5) // 黑色,但是半透明
取值范围
一般情况下,r
、g
、b
、a
的取值范围均为0
~ 1
但在特点情况下(例如客户端代码),r
、g
、b
、a
的取值范围均为0
~ 255
常用¶
属性¶
属性 | 类型 | 说明 |
---|---|---|
r | 颜色的红色值 | |
g | 颜色的绿色值 | |
b | 颜色的蓝色值 | |
a | 颜色的不透明度 |
方法¶
说明
下列全部[示例]的代码后面的注释为预期的运行结果,可以不用看“<~”,这只是一个提示符
set (r:number , g:number , b:number , a:number ):Box3RGBAColor set (r:number , g:number , b:number , a:number ):GameRGBAColor - 设置RGB颜色的值
示例
copy (c:Box3RGBAColor ):Box3RGBAColor copy (c:GameRGBAColor ):GameRGBAColor - 将一个RGB颜色的值复制到该RGB颜色颜色中
示例
new GameRGBAColor(0, 0, 0, 0).copy(new GameRGBAColor(1, 1, 0, 1)) // <~ { r: 1, g: 1, b: 0, a: 1 } new GameRGBAColor(0.1, 0.2, 0.3, 0).copy(new GameRGBAColor(0.2, 0.4, 0.6, 0.8)) // <~ { r: 0.2, g: 0.4, b: 0.6, a: 0.8 } new GameRGBAColor().copy(new GameRGBAColor(0.5, 0.5, 0.5, 0.5)) // <~ { r: 0.5, g: 0.5, b: 0.5, a: 0.5 }
clone ():Box3RGBAColor clone ():GameRGBAColor - 复制该RGB颜色
add (rgba:Box3RGBAColor ):Box3RGBAColor add (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法不会改变原来的RGBA颜色
sub (rgba:Box3RGBAColor ):Box3RGBAColor sub (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法不会改变原来的RGBA颜色
mul (rgba:Box3RGBAColor ):Box3RGBAColor mul (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法不会改变原来的RGBA颜色
div (rgba:Box3RGBAColor ):Box3RGBAColor div (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值除以另一个RGB颜色的值,返回结果
此方法不会改变原来的RGBA颜色
addEq (rgba:Box3RGBAColor ):Box3RGBAColor addEq (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法会改变原来的RGBA颜色
subEq (rgba:Box3RGBAColor ):Box3RGBAColor subEq (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法会改变原来的RGBA颜色
mulEq (rgba:Box3RGBAColor ):Box3RGBAColor mulEq (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值加上另一个RGB颜色的值,返回结果
此方法会改变原来的RGBA颜色
divEq (rgba:Box3RGBAColor ):Box3RGBAColor divEq (rgba:GameRGBAColor ):GameRGBAColor - 将这个RGB颜色的值除以另一个RGB颜色的值,返回结果
此方法会改变原来的RGBA颜色
lerp (rgba:Box3RGBAColor , n:number ):Box3RGBAColor lerp (rgba:GameRGBAColor , n:number ):GameRGBAColor -
插值函数,类似于取平均值
可以理解为,以该颜色为起点,rgba
为终点的平滑色块,取n
处的颜色 === "旧版编辑器" | 参数 | 类型 | 说明 | | :- | :- | :- | | rgba |Box3RGBAColor | 终点颜色 | | n |number | 插值位置,范围0
~1
| === "Arena 编辑器" | 参数 | 类型 | 说明 | | :- | :- | :- | | rgba |GameRGBAColor | 终点颜色 | | n |number | 插值位置,范围0
~1
|此方法不会改变原来的RGBA颜色
示例
new Box3RGBAColor(0, 0, 0, 1).lerp(new Box3RGBAColor(1, 1, 1, 0), 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5, a: 0.5 } new Box3RGBAColor(0, 0, 0, 1).lerp(new Box3RGBAColor(1, 1, 1, 0), 0.25) // <~ { r: 0.25, g: 0.25, b: 0.25, a: 0.75 } new Box3RGBAColor(0, 0, 0, 0.5).lerp(new Box3RGBAColor(0.5, 0.5, 0.5, 0), 0.5) // <~ { r: 0.25, g: 0.25, b: 0.25, a: 0.25 }
new GameRGBAColor(0, 0, 0, 1).lerp(new Box3RGBAColor(1, 1, 1, 0), 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5, a: 0.5 } new GameRGBAColor(0, 0, 0, 1).lerp(new Box3RGBAColor(1, 1, 1, 0), 0.25) // <~ { r: 0.25, g: 0.25, b: 0.25, a: 0.75 } new GameRGBAColor(0, 0, 0, 0.5).lerp(new Box3RGBAColor(0.5, 0.5, 0.5, 0), 0.5) // <~ { r: 0.25, g: 0.25, b: 0.25, a: 0.25 }
blendEq (rgb:Box3RGBColor ):Box3RGBColor blendEq (rgb:GameRGBColor ):GameRGBColor - 混合颜色 可以理解为,将
rgb
RGB颜色上盖一层该RGBA颜色的颜色
注意结果为
Box3RGBColor /GameRGBColor 此方法不会改变原来的RGBA颜色
示例
new Box3RGBAColor(0, 0, 0, 1).blendEq(new Box3RGBColor(1, 0, 0)) // <~ { r: 0, g: 0, b: 0 } new Box3RGBAColor(0, 0, 0, 0).blendEq(new Box3RGBColor(1, 0, 0)) // <~ { r: 1, g: 0, b: 0 } new Box3RGBAColor(0, 0, 0, 0.5).blendEq(new Box3RGBColor(1, 0, 0)) // <~ { r: 0.5, g: 0, b: 0 } new Box3RGBAColor(0.5, 0, 0, 0.5).blendEq(new Box3RGBColor(1, 0, 0)) // <~ { r: 0.75, g: 0, b: 0 } new Box3RGBAColor(1, 1, 0, 0.5).blendEq(new Box3RGBColor(1, 0, 0)) // <~ { r: 1, g: 0.5, b: 0 }
new GameRGBAColor(0, 0, 0, 1).blendEq(new GameRGBColor(1, 0, 0)) // <~ { r: 0, g: 0, b: 0 } new GameRGBAColor(0, 0, 0, 0).blendEq(new GameRGBColor(1, 0, 0)) // <~ { r: 1, g: 0, b: 0 } new GameRGBAColor(0, 0, 0, 0.5).blendEq(new GameRGBColor(1, 0, 0)) // <~ { r: 0.5, g: 0, b: 0 } new GameRGBAColor(0.5, 0, 0, 0.5).blendEq(new GameRGBColor(1, 0, 0)) // <~ { r: 0.75, g: 0, b: 0 } new GameRGBAColor(1, 1, 0, 0.5).blendEq(new GameRGBColor(1, 0, 0)) // <~ { r: 1, g: 0.5, b: 0 }
equals (rgba:Box3RGBAColor ):boolean equals (rgba:GameRGBAColor ):boolean - 判断该RGB颜色是否和另一个颜色的值相等
容差为0.000001
此处与官方API不符
该文档没有tolerance
:number 参数此处与社区API不符
该文档没有tolerance
:number 参数经 2024/7/18 测试:该文档内容无问题
示例
new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.1, 0.1, 0.1, 0.5)) // <~ true new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.100001, 0.1, 0.1, 0.5)) // <~ false new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.1000001, 0.1, 0.1, 0.5)) // <~ true new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.1000009999, 0.1, 0.1, 0.5)) // <~ true new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.1, 0.1, 0.1, 0.500001)) // <~ false new Box3RGBAColor(0.1, 0.1, 0.1, 0.5).equals(new Box3RGBAColor(0.1, 0.1, 0.1, 0.5000009999)) // <~ true
new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.1, 0.1, 0.1, 0.5)) // <~ true new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.100001, 0.1, 0.1, 0.5)) // <~ false new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.1000001, 0.1, 0.1, 0.5)) // <~ true new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.1000009999, 0.1, 0.1, 0.5)) // <~ true new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.1, 0.1, 0.1, 0.500001)) // <~ false new GameRGBAColor(0.1, 0.1, 0.1, 0.5).equals(new GameRGBAColor(0.1, 0.1, 0.1, 0.5000009999)) // <~ true
toString ():string - 将这个RGBA颜色转换成字符串
- toRGB ():
Box3RGBAColor - toRGB ():
GameRGBAColor - 将这个RGBA颜色转换成RGB颜色
你被骗了!
这只是一个假象的方法
这么写的目的是提醒你,Box3RGBAColor /GameRGBAColor 并没有这个方法!