c++ - 尝试找出在特定时间内褪色的方程式

标签 c++ time sfml equation fading

我目前正在使用 SFML 在 c++ 中创建一个 Logo 序列,并且想要输入所需的时间,然后淡出该时间量,例如,如果输入为 3,则淡出颜色直到 3 秒向上。颜色整数的最大数量为 255(白色)。这是我当前的代码:

sf::Time fadeCalc = clock.getElapsedTime();
int f = fadeCalc.asMilliseconds();
int l = logoLength.asSeconds();
int iColor = "Equation needed using variables"
sf::Color fadeColor(iColor,iColor,iColor);
Fade.setFillColor(fadeColor);

任何帮助将不胜感激!很抱歉我无法找到更简单的解释方法。

最佳答案

你将从 start color 中消失至end color超过total fade time ,步长为elapsed time每次抽奖。

因此,在每个绘制步骤中,您需要将颜色设置为 start color + ((end color - start color) * (elapsed time / total time)) 。这将为您提供想要完成的更改量,计算出此时应发生的更改的百分比,然后将更改的金额添加到您的初始金额。

例如,如果您想要从 100 到 255,而 3000 毫秒已达到 1000,那么您预计会是从 100 到 255 的 1/3,即 151.6667(151 被截断)。如果是 2/3,则为 203.333。等等。

一旦您 >= 您的 total time ,只需设置 start colorend color .

关于c++ - 尝试找出在特定时间内褪色的方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15036801/

相关文章:

c++ - 为什么不能 static_cast 双空指针?

c++ - 有没有办法使用 SFINAE 检测是否未声明非模板化非成员函数?

time - 将 <integer> 秒添加到 PostgreSQL 中的 <timestamp>

c++ - std::chrono 重复调用 QueryPerformanceFrequency?

c++ - 命名空间行为怪异

c++ - 调用了虚函数,使用了父函数

c++ - 如何在 C++ 中提取格式化文本?

c++ - 如何解析 IP 地址 block IPv4/IPv6

python - 如何使函数在特定时间段内运行?

c++ - 静态链接 SFML 库时 MinGW 中的问题