跳转至

Box3RGBColor / GameRGBColor RGB颜色

这是一个服务端API

该API仅在服务端脚本使用

查阅官方文档
查阅官方文档(Arena)
查阅社区文档(Arena)
Box3RGBColor / GameRGBColor 是表示RGB颜色的一个类,不包含透明度

构造函数

Box3RGBColor(r: number, g: number, b: number): Box3RGBColor
GameRGBColor(r: number, g: number, b: number): GameRGBColor
创建一个RGB颜色

取值范围

一般情况下,rgb的取值范围均为0 ~ 1
但在特点情况下(例如客户端代码),rgb的取值范围均为0 ~ 255

示例
new Box3RGBColor(0, 0, 0) // 黑色
new Box3RGBColor(1, 1, 1) // 白色
new Box3RGBColor(1, 0, 0) // 红色
new Box3RGBColor(0, 1, 0) // 绿色
new Box3RGBColor(0, 0, 1) // 蓝色
new Box3RGBColor(1, 1, 0) // 黄色
new Box3RGBColor(0, 1, 1) // 青色
new Box3RGBColor(1, 0, 1) // 紫色
new GameRGBColor(0, 0, 0) // 黑色
new GameRGBColor(1, 1, 1) // 白色
new GameRGBColor(1, 0, 0) // 红色
new GameRGBColor(0, 1, 0) // 绿色
new GameRGBColor(0, 0, 1) // 蓝色
new GameRGBColor(1, 1, 0) // 黄色
new GameRGBColor(0, 1, 1) // 青色
new GameRGBColor(1, 0, 1) // 紫色

常用

set copy clone

属性

属性 类型 说明
r number 颜色的红色值
g number 颜色的绿色值
b number 颜色的蓝色值

方法

说明

下列全部[示例]的代码后面的注释为预期的运行结果,可以不用看“<~”,这只是一个提示符

set (r: number, g: number, b: number): Box3RGBColor
set (r: number, g: number, b: number): GameRGBColor

设置RGB颜色的值

示例
new Box3RGBColor(0, 0, 0).set(1, 1, 0) // <~ { r: 1, g: 1, b: 0 }
new Box3RGBColor(0.1, 0.2, 0.3).set(0.2, 0.4, 0.6) // <~ { r: 0.2, g: 0.4, b: 0.6 }
new Box3RGBColor().set(0.5, 0.5, 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5 }
new GameRGBColor(0, 0, 0).set(1, 1, 0) // <~ { r: 1, g: 1, b: 0 }
new GameRGBColor(0.1, 0.2, 0.3).set(0.2, 0.4, 0.6) // <~ { r: 0.2, g: 0.4, b: 0.6 }
new GameRGBColor().set(0.5, 0.5, 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5 }
copy (c: Box3RGBColor): Box3RGBColor
copy (c: GameRGBColor): GameRGBColor

将一个RGB颜色的值复制到该RGB颜色颜色中

示例
new Box3RGBColor(0, 0, 0).copy(new Box3RGBColor(1, 1, 0)) // <~ { r: 1, g: 1, b: 0 }
new Box3RGBColor(1, 2, 3).copy(new Box3RGBColor(0.2, 0.4, 0.6)) // <~ { r: 0.2, g: 0.4, b: 0.6 }
new Box3RGBColor().copy(new Box3RGBColor(0.5, 0.5, 0.5)) // <~ { r: 0.5, g: 0.5, b: 0.5 }
new GameRGBColor(0, 0, 0).copy(new GameRGBColor(1, 1, 0)) // <~ { r: 1, g: 1, b: 0 }
new GameRGBColor(1, 2, 3).copy(new GameRGBColor(0.2, 0.4, 0.6)) // <~ { r: 0.2, g: 0.4, b: 0.6 }
new GameRGBColor().copy(new GameRGBColor(0.5, 0.5, 0.5)) // <~ { r: 0.5, g: 0.5, b: 0.5 }
clone (): Box3RGBColor
clone (): GameRGBColor

复制该RGB颜色

示例
new Box3RGBColor(1, 1, 1).clone() //<~ { r: 1, g: 1, b: 1 }
new GameRGBColor(1, 1, 1).clone() //<~ { r: 1, g: 1, b: 1 }
add (rgb: Box3RGBColor): Box3RGBColor
add (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法不会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).add(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.2, g: 0.2, b: 0.2 }
new GameRGBColor(0.1, 0.1, 0.1).add(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.2, g: 0.2, b: 0.2 }
sub (rgb: Box3RGBColor): Box3RGBColor
sub (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法不会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).sub(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0, g: 0, b: 0 }
new GameRGBColor(0.1, 0.1, 0.1).sub(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0, g: 0, b: 0 }
mul (rgb: Box3RGBColor): Box3RGBColor
mul (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法不会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).mul(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.01, g: 0.01, b: 0.01 }
new GameRGBColor(0.1, 0.1, 0.1).mul(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.01, g: 0.01, b: 0.01 }
div (rgb: Box3RGBColor): Box3RGBColor
div (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值除以另一个RGB颜色的值,返回结果

此方法不会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).div(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 1, g: 1, b: 1 }
new GameRGBColor(0.1, 0.1, 0.1).div(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 1, g: 1, b: 1 }
addEq (rgb: Box3RGBColor): Box3RGBColor
addEq (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).addEq(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.2, g: 0.2, b: 0.2 }
new GameRGBColor(0.1, 0.1, 0.1).addEq(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.2, g: 0.2, b: 0.2 }
subEq (rgb: Box3RGBColor): Box3RGBColor
subEq (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).subEq(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0, g: 0, b: 0 }
new GameRGBColor(0.1, 0.1, 0.1).subEq(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0, g: 0, b: 0 }
mulEq (rgb: Box3RGBColor): Box3RGBColor
mulEq (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值加上另一个RGB颜色的值,返回结果

此方法会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).mulEq(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.01, g: 0.01, b: 0.01 }
new GameRGBColor(0.1, 0.1, 0.1).mulEq(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 0.01, g: 0.01, b: 0.01 }
divEq (rgb: Box3RGBColor): Box3RGBColor
divEq (rgb: GameRGBColor): GameRGBColor

将这个RGB颜色的值除以另一个RGB颜色的值,返回结果

此方法会改变原来的RGB颜色

示例
new Box3RGBColor(0.1, 0.1, 0.1).divEq(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ { r: 1, g: 1, b: 1 }
new GameRGBColor(0.1, 0.1, 0.1).divEq(new GameRGBColor(0.1, 0.1, 0.1)) // <~ { r: 1, g: 1, b: 1 }
lerp (rgb: Box3RGBColor, n: number): Box3RGBColor
lerp (rgb: GameRGBColor, n: number): GameRGBColor

插值函数,类似于取平均值
可以理解为,以该颜色为起点,rgb为终点的平滑色块,取n处的颜色

参数 类型 说明
rgb Box3RGBColor 终点颜色
n number 插值位置,范围0~1
参数 类型 说明
rgb GameRGBColor 终点颜色
n number 插值位置,范围0~1

此方法不会改变原来的RGB颜色

示例
new Box3RGBColor(0, 0, 0).lerp(new Box3RGBColor(1, 1, 1), 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5 }
new Box3RGBColor(0, 0, 0).lerp(new Box3RGBColor(1, 1, 1), 0.25) // <~ { r: 0.25, g: 0.25, b: 0.25 }
new Box3RGBColor(0, 0, 0).lerp(new Box3RGBColor(0.5, 0.5, 0.5), 0.5) // <~ { r: 0.25, g: 0.25, b: 0.25 }
new GameRGBColor(0, 0, 0).lerp(new GameRGBColor(1, 1, 1), 0.5) // <~ { r: 0.5, g: 0.5, b: 0.5 }
new GameRGBColor(0, 0, 0).lerp(new GameRGBColor(1, 1, 1), 0.25) // <~ { r: 0.25, g: 0.25, b: 0.25 }
new GameRGBColor(0, 0, 0).lerp(new GameRGBColor(0.5, 0.5, 0.5), 0.5) // <~ { r: 0.25, g: 0.25, b: 0.25 }
equals (rgb: Box3RGBColor): boolean
equals (rgb: GameRGBColor): boolean

判断该RGB颜色是否和另一个颜色的值相等
容差为0.000001

此处与官方API不符

该文档没有tolerance: number参数

此处与社区API不符

该文档没有tolerance: number参数

经 2024/7/18 测试:该文档内容无问题

new GameRGBColor(0.5, 0.5, 0.5).equals(new GameRGBColor(0.6, 0.5, 0.5), 1) // <~ false
示例
new Box3RGBColor(0.1, 0.1, 0.1).equals(new Box3RGBColor(0.1, 0.1, 0.1)) // <~ true
new Box3RGBColor(0.1, 0.1, 0.1).equals(new Box3RGBColor(0.100001, 0.1, 0.1)) // <~ false
new Box3RGBColor(0.1, 0.1, 0.1).equals(new Box3RGBColor(0.1000001, 0.1, 0.1)) // <~ true
new Box3RGBColor(0.1, 0.1, 0.1).equals(new Box3RGBColor(0.1000009999, 0.1, 0.1)) // <~ true
new GameRGBColor(0.1, 0.1, 0.1).equals(new GameRGBColor(0.1, 0.1, 0.1)) // <~ true
new GameRGBColor(0.1, 0.1, 0.1).equals(new GameRGBColor(0.100001, 0.1, 0.1)) // <~ false
new GameRGBColor(0.1, 0.1, 0.1).equals(new GameRGBColor(0.1000001, 0.1, 0.1)) // <~ true
new GameRGBColor(0.1, 0.1, 0.1).equals(new GameRGBColor(0.1000009999, 0.1, 0.1)) // <~ true
toString (): string

将这个RGB颜色转换成字符串

示例
JSON.stringify(new Box3RGBColor(1, 0, 0).toString()) // <~ "{ r:1, g:0, b:0 }"
JSON.stringify(new GameRGBColor(1, 0, 0).toString()) // <~ "{ r:1, g:0, b:0 }"
toRGBA (): Box3RGBAColor
toRGBA (): GameRGBAColor

将这个RGB颜色转换成RGBA颜色

示例
new Box3RGBColor(1, 0, 0).toRGBA() // <~ { r:1, g:0, b:0, a:1 }
new GameRGBColor(1, 0, 0).toRGBA() // <~ { r:1, g:0, b:0, a:1 }
random (): Box3RGBColor
random (): GameRGBColor
随机生成一个颜色

评论区