如何使背景颜色从深红色过渡到绿色?

时间:2019-04-15 18:56:41

标签: lua roblox

我正在尝试在5秒钟内从深红色过渡到浅绿色的倒数计时器(已经弄清了那部分)。

1 个答案:

答案 0 :(得分:0)

颜色可以由3个值的组合表示,每个值的范围是0-255。这些值代表颜色的RGB值。第一个数字代表颜色中的红色“多少”,第二个代表绿色,第三个代表蓝色。

以下是RGB颜色的一些示例,

  • 纯红色=(255,0,0)
  • 纯绿色=(0,255,0)
  • 纯蓝色=(0,0,255)
  • 黑色=(0,0,0)
  • 白色=(255,255,255)
  • 深洋红色=(100,0,100)
  • 青色=(0,200,200)
  • 黄色=(255,255,0)

您可以使用Color3在Roblox中构造颜色。有一个构造函数可以使用Color3.fromRGB(number r, number g, number b)轻松地将RGB颜色转换为Color3。因此,如果您希望在5秒钟内从深红色(50,0,0)变为明亮绿色(100,255,100),可以使用Color3:lerp(Color3 targetColor, number alpha)

local startingColor = Color3.fromRGB(50, 0, 0) -- dark red
local targetColor = Color3.fromRGB(100, 255, 100) -- bright green

local testBrick = Instance.new("Part", game.workspace)
testBrick.Color = startingColor

-- make a loop to change the color, lerp() expects a number between 0 - 1.
local timeToComplete = 5.0 -- seconds
local framesPerSecond = 60.0
local waitAmt = 1.0 / framesPerSecond
local stepAmt = 1.0 / (timeToComplete * framesPerSecond)
local i = 0.0

while (i < 1.0)
    testBrick.Color = startingColor:lerp(targetColor, i)
    i = i + stepAmt
    wait(waitAmt)
end

-- by now the color should be close to the target color, ensure it is done
testBrick.Color = targetColor

在引擎盖下,这只是做一些简单的线性代数,将3个值从起点转换为终点。希望这会有所帮助。