Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Imgui begin

  • Автор темы Автор темы Rellia
  • Дата начала Дата начала
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как я понял, тебе нужна анимация перехода...
Самый кринжовый способ, это сохранять значение активного таба, потом чекать изменится ли он, и если изменился, тогда апдейтить альфу через pushstyle
 
Как можно реализовать плавный переход между бегинами в имгуй?
при смене таба модулируй ImGuiStyleVar_Alpha от 0 до 1
Код:
Expand Collapse Copy
if (last_tab != tab || (last_tab == tab && alpha_reverse))
                {
                    if (!alpha_reverse)
                    {
                        if (modulate_alpha == 1.f)
                            alpha_reverse = true;

                        modulate_alpha = ImClamp(preview_alpha + (4.f * ImGui::GetIO().DeltaTime), 0.01f, 1.f);
                    }
                    else
                    {
                        last_tab = tab;
                        if (modulate_alpha == 0.01f)
                        {
                            alpha_reverse = false;
                        }

                        modulate_alpha = ImClamp(modulate_alpha - (2.f * ImGui::GetIO().DeltaTime), 0.01f, 1.f);
                    }
                }
                else
                    modulate_alpha = ImClamp(modulate_alpha - (4.f * ImGui::GetIO().DeltaTime), 0.0f, 1.f);
таб
if (ImGui::tab("R", "Ragebot", !tab) && last_tab == tab && !alpha_reverse )tab = 0;
переменные
Код:
Expand Collapse Copy
static int last_tab = tab;
            static bool active_animation = false;
            static bool alpha_reverse  = false;
            static float modulate_alpha = 0.f;

и в конце концов перед чилдами ставь
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, (1.f - preview_alpha) * alpha);

а после
ImGui::PщзStyleVar();
 
Назад
Сверху Снизу