Плавное затемнение Indigo

Забаненный
Статус
Оффлайн
Регистрация
12 Апр 2017
Сообщения
353
Реакции[?]
71
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно ли сделать плавное затемнение для индиго?
Если же да, то подскажите цикл для Alpha? :^)

(Подскажите цикл для Alpha, пжжжж).

Код:
  g_pRender->DrawFillBox(0, 0, iScreenWidth, iScreenHeight, Color(0, 0, 0, Alpha));
И да, какого типа должна быть переменная Alpha?
 
push me to the edge
Олдфаг
Статус
Оффлайн
Регистрация
22 Мар 2017
Сообщения
2,253
Реакции[?]
1,204
Поинты[?]
1K
Зачем цикл?
Код:
float alpha = 0.0f;
if(alpha != 1.0f)
alpha++;
// в WndProc при открытии меню сбрасывай значение alpha до 0.0f
 
Пользователь
Статус
Оффлайн
Регистрация
7 Сен 2014
Сообщения
61
Реакции[?]
86
Поинты[?]
0
if(alpha != 1.0f) alpha++;
На вещественные типы никогда не делай проверку на точное значение. При инкременте может возникнуть ситуация, когда значение float будет ~= 0.99999999, которое не подойдёт по условиям.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Авг 2017
Сообщения
52
Реакции[?]
18
Поинты[?]
1K
Код:
static constexpr auto frequency = 1 / 0.55f;

flAlpha = clip(flAlpha + frequency * io.DeltaTime, 0.f, 1.f);

//
float clip(float n, float lower, float upper) {
  return std::max(lower, std::min(n, upper));
}
И да, какого типа должна быть переменная Alpha?
Посмотри какой тип используется в imgui.
 
Сверху Снизу