如何将背景颜色从深红色渐变为绿色?

我正在尝试让一个倒计时器(已经解决了这个部分)在5秒内从深红色渐变到浅绿色。

点赞
用户2860267
用户2860267

颜色可以由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)

在Roblox中,您可以使用Color3构建颜色。通过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) -- 暗红色
local targetColor = Color3.fromRGB(100, 255, 100) -- 明亮的绿色

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

-- 创建循环以更改颜色,lerp()需要0-1之间的数字。
local timeToComplete = 5.0 -- 秒
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

-- 现在颜色应该接近目标颜色,请确保完成
testBrick.Color = targetColor

在幕后,这只是一些简单的线性代数,以将3个值从起点转换为终点。希望这可以帮助您。

2019-04-15 20:22:10