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

Вопрос ImGui animation

Модератор форума
Участник
Участник
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции
157
Вопрос состоит в том, как сделать плавно выезжающий из ниоткуда прямоугольник(меня интересует как сделать именно плавность, ибо как я понял, нужно просто к альфе значения прибавлять, но как сделать это плавно? )
 
Каждый новый кадр меняешь x координату в функции отрисовки, пока x у тебя не станет нужным и в итоге вот те и плавная анимация, в чем проблема?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в цикле меняешь значение переменной до нужной. Офк на плавность будет влиять то,сколько ты прибавляешь к значению за итерацию
 
Вопрос состоит в том, как сделать плавно выезжающий из ниоткуда прямоугольник(меня интересует как сделать именно плавность, ибо как я понял, нужно просто к альфе значения прибавлять, но как сделать это плавно? )
If (x < 150)
x += 15;
 
Вставляешь это куда-нибудь где у тебя рисуется меню, заменяя x и y на свои значения:
C++:
Expand Collapse Copy
int xanim = 0, yanim = 0; //для анимации
int x = *сюда свой x*, y = *сюда свой y*; //размеры меню
int speed = 20; //чем больше, тем плавнее (деление на 20 - не совсем плавная анимация, можешь поставить больше)

Вставляешь это перед ImGui::Begin:
C++:
Expand Collapse Copy
  if (xanim < x)
        xanim += x / speed;
  if (yanim < y)
        yanim += y / speed;

        ImGui::SetNextWindowSize(ImVec2(xanim, yanim));

Ну и если хочешь чтобы анимация была при каждом открытии меню, то нужно найти участок кода где написано что происходит по нажатию кнопки инсерт(или что там у тебя) и вставить туда:
C++:
Expand Collapse Copy
 xanim = 0, yanim = 0;

Возможно что-то сделал тупо, но главное что просто и работает, я не кодер:confused:
 
Назад
Сверху Снизу