Попытка выяснить уравнение для выцветания цвета за определенное время

В настоящее время я создаю последовательность логотипа в c ++ с SFML и хотел бы ввести желаемое время, а затем постепенно уменьшать его, например, если введено значение 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);

Любая помощь будет принята с благодарностью! Извините, я не мог найти способ объяснить это проще.

2

Решение

Вы будете исчезать из start color в end color над total fade timeделая шаг elapsed time за ничью

В результате на каждом этапе рисования вы захотите установить свой цвет на start color + ((end color - start color) * (elapsed time / total time)), Это даст вам сумму изменений, которую вы хотите выполнить, определите процент изменений, которые должны были произойти к этому моменту, затем добавьте эту измененную сумму к вашей первоначальной сумме.

Например, если вы хотите перейти от 100 до 255, и это было 1000 из 3000 миллисекунд, вы должны ожидать 1/3 пути от 100 до 255 или 151.6667 (151 усечено). В 2/3 это было бы 203,333. И так далее.

Как только вы> = ваш total timeПросто установите start color в end color,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]