跳到主要内容

颜色(Color)

构造器(Constructors)

lerp

lerp(from: Color, to: Color, t: number) -> Color

使用参数 t 在两个颜色之间进行线性插值,其中 t = 0 返回 'from',t = 1 返回 'to'。

local black = Color.rgb(0, 0, 0)
local white = Color.rgb(255, 255, 255)

local t = 0.5

-- 在黑色和白色之间进行线性插值
local gray = Color.lerp(black, white, t)

print(gray)
-- 返回介于黑色和白色之间的灰色

rgb

rgb(r: number, g: number, b: number) -> Color

返回由红、绿、蓝通道构建的颜色。Alpha 默认为 255(完全不透明)。通道值会被限制在 [0, 255] 范围内。

-- 红色
self.color = Color.rgb(255, 0, 0)

rgba

rgba(r: number, g: number, b: number, a: number) -> Color

返回由红、绿、蓝、和透明度通道构建的颜色。 通道值会被限制在 [0, 255] 范围内。

-- 50% 不透明度的红色
self.color = Color.rgba(255, 0, 0, 128)

静态函数(Static Functions)

red

red(color: Color, value: number?) -> number | Color

返回颜色的红色通道。如果提供了 值,则返回该通道更新后的新颜色。

local myColor = Color.rgba(128, 55, 12, 128)
local redChannel = Color.red(myColor)
print(redChannel)
-- 128

local newColor = Color.red(myColor, 200)
print(Color.red(newColor))
-- 200

green

green(color: Color, value: number?) -> number | Color

返回颜色的绿色通道。如果提供了 值,则返回该通道更新后的新颜色。

local myColor = Color.rgba(128, 55, 12, 128)
local greenChannel = Color.green(myColor)
print(greenChannel)
-- 55

local newColor = Color.green(myColor, 200)
print(Color.green(newColor))
-- 200

blue

blue(color: Color, value: number?) -> number | Color

返回颜色的蓝色通道。如果提供了 值,则返回该通道更新后的新颜色。

local myColor = Color.rgba(128, 55, 12, 128)
local blueChannel = Color.blue(myColor)
print(blueChannel)
-- 12

local newColor = Color.blue(myColor, 200)
print(Color.blue(newColor))
-- 200

alpha

alpha(color: Color, value: number?) -> number | Color

返回颜色的 alpha 通道,或返回 alpha 通道设置为指定值的新颜色。值会被限制在 [0, 255] 范围内。

local myColor = Color.rgba(128, 55, 12, 128)
local alphaChannel = Color.alpha(myColor)
print(alphaChannel)
-- 128

local newColor = Color.alpha(myColor, 200)
print(Color.alpha(newColor))
-- 200

opacity

opacity(color: Color, value: number?) -> number | Color

以 [0.0, 1.0] 范围内的归一化值返回颜色的不透明度, 或返回根据指定不透明度设置 alpha 的新颜色。

local myColor = Color.rgba(255, 0, 0, 128)

-- 获取颜色的不透明度
local myOpacity = Color.opacity(myColor)
print(myOpacity)
-- 0.5

-- 获取具有指定不透明度的新颜色
local newColor = Color.opacity(myColor, 1.0)
print(Color.opacity(newColor))
-- 1.0

toFloat

toFloat(color: Color) -> {number}

将 Color(ARGB 打包整数)转换为 {r, g, b, a} table, 值在 0–1 范围内。可与渲染通道中的 clearColor 一起使用。

local cc = Color.toFloat(Color.rgba(255, 0, 0, 128))
-- cc = {1.0, 0.0, 0.0, 0.502}