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

  • Автор темы Автор темы XVII
  • Дата начала Дата начала
alive forever
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2017
Сообщения
688
Реакции
400
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Для маслят.
Рисуем тем,чем хотим (игрой,собственным рендером,гуи рендером)
Показываю пример с Гуи Рендером :
Объявляем переменную
Код:
Expand Collapse Copy
       static float Alpha= 0.0f;
Дальше делаем условие :
Код:
Expand Collapse Copy
if (Alpha< 0.65f)
                Alpha+= 0.005f;
Далее рисуем бокс (ПЕРЕД РИСОВКОЙ МЕНЮ):
Код:
Expand Collapse Copy
_drawList->AddRectFilled(ImVec2(0, 0), ImVec2(screenWidthX, screenHeightY), ImGui::GetColorU32(ImVec4(0.0f, 0.0f, 0.0f, Alpha)));
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Для маслят.
Рисуем тем,чем хотим (игрой,собственным рендером,гуи рендером)
Показываю пример с Гуи Рендером :
Объявляем переменную
Код:
Expand Collapse Copy
       static float Alpha= 0.0f;
Дальше делаем условие :
Код:
Expand Collapse Copy
if (Alpha< 0.65f)
                Alpha+= 0.005f;
Далее рисуем бокс (ПЕРЕД РИСОВКОЙ МЕНЮ):
Код:
Expand Collapse Copy
_drawList->AddRectFilled(ImVec2(0, 0), ImVec2(screenWidthX, screenHeightY), ImGui::GetColorU32(ImVec4(0.0f, 0.0f, 0.0f, Alpha)));
Сработает только 1 раз, т.к. ты не обнуляешь переменную после закрытия.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не думаю. Такое обычно делается для меню и смысла один раз выполнять данную операцию не вижу смысла.
Я просто забыл добавить это ,ибо писал на скорую руку.
В софте все у меня обнуляется)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
пропиши перед циклом Alpha=0.0 чтобы фон не все время черным был
 
Последнее редактирование:
пропиши перед циклом Alpha=0.0 чтобы фон не все время черным был
Уже было сказано выше,что нужно просто обнулить переменную после закрытия меню. Не аппай тему,окда?
 
Как отрисовать - нашёл, а вот как найти разрешение экрана - не смог. То ли я тупой, то ли лыжи не едут...

UPD: Нашёл:

C++:
Expand Collapse Copy
    int screenWidthX = GetSystemMetrics(SM_CXSCREEN);
    int screenHeightY = GetSystemMetrics(SM_CYSCREEN);
 
Последнее редактирование:
  • Раздражает
Реакции: sove
Как отрисовать - нашёл
Не используй это, идея что описал тс просто мусор, он добавляет коэффциент каждый кадр, таким образом эта "анимация" будет работать быстрее при большем фпс и медленее при меньшем. Вместо этого нужно отталкиваться от времени.
 
Не используй это, идея что описал тс просто мусор, он добавляет коэффциент каждый кадр, таким образом эта "анимация" будет работать быстрее при большем фпс и медленее при меньшем. Вместо этого нужно отталкиваться от времени.
Я уже понял это
 
Не используй это, идея что описал тс просто мусор, он добавляет коэффциент каждый кадр, таким образом эта "анимация" будет работать быстрее при большем фпс и медленее при меньшем. Вместо этого нужно отталкиваться от времени.
в чём смысл называть это мусором, когда это самое простейшее?
это называется не коэффицент, а константа:
Данное условие срабатывает при новом фрейме, и прибавляется константное значение

Для нормальной анимации нужно использовать что-то вроде этого:
alpha += ImGui::GetIO().DeltaTime * 3.f;
 
Назад
Сверху Снизу