gpt4 book ai didi

c++ - 如何创建一个在 2d 颜色选择器中返回 2 种颜色之间的颜色的函数?

转载 作者:行者123 更新时间:2023-11-30 05:44:09 25 4
gpt4 key购买 nike

我想创建一个 hp 条,当 hp 为满时 (scale=1),rgb 为 100,200,255,(如亮绿色),当 hp 为 0 (scale=0) 时,rgb 为 100,50,0 (深红色):

void getHPBarColor(int startR,int startG,int startB,int endR,int endG,int endB,float scale);

which getHPBarColor(100,200,255,100,50,0,0.5) (half hp) 将返回类似黄色的东西,黄色是颜色选择器中起始颜色和结束颜色之间的颜色。

最佳答案

这取决于您的 Color 类。我假设您有一个简单的 Color 类,它接受 3 个整数(分别为红绿蓝)。这还假设您可以按百分比传递 HP(这是有道理的,因为此函数不一定知道 50hp 是多少,因为最大 HP 可能取决于怪物等)

struct Color
{
int red;
int green;
int blue;

Color(int r, int g, int b) : red(r), green(g), blue(b) {}

friend std::ostream& operator << (std::ostream& oss, const Color& clr)
{
oss << clr.red << ", " << clr.green << ", " << clr.blue << endl;
return oss;
}
};

Color GetHPColor(double dPercent) { return Color(255-(255*dPercent), 0 + 255*dPercent, 0); }

int main() {
cout << GetHPColor(0.0); // 255, 0, 0 at 0% hp
cout << GetHPColor(0.5); // 127, 127, 0 at 50% hp
cout << GetHPColor(1.0); // 0, 255, 0 at 100% hp
return 0;
}

您选择的颜色可以不同。这是为了让您大致了解如何做到这一点。

关于c++ - 如何创建一个在 2d 颜色选择器中返回 2 种颜色之间的颜色的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29936184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com