Вопрос ImGui как зделать анимацию кнопок и как зделать создание окна и как еще зделать код для кнопки

Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
я плохо обяснил что но 1 как делать анимации на кнопки и как зделать нормальное окно HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr); как зделать так чтобы было только меню без окна зади типа как в обычних читах и как еще зделать так чтобы там когда нажымаеш на кнопку выполняется код
 
Последнее редактирование:
PoC Life
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
412
Реакции[?]
51
Поинты[?]
44K
я плохо обяснил что но 1 как делать анимации на кнопки и как зделать нормальное окно HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr); как зделать так чтобы было только меню без окна зади типа как в обычних читах и как еще зделать так чтобы там когда нажымаеш на кнопку выполняется код
выучи русский плиз

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
Как сделать анимацию кнопки и как сделать так что бы При нажатии на кнопку запускался код
 
Imgui Seller
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2023
Сообщения
416
Реакции[?]
40
Поинты[?]
38K
get good, get zeus, for ever
Пользователь
Статус
Оффлайн
Регистрация
1 Июн 2018
Сообщения
567
Реакции[?]
93
Поинты[?]
43K
Мне хоть 1 дай потому что я чайник
Код:
            static std::map<ImGuiID, float> rotation_animation;

            auto it_rotation = rotation_animation.find(id);
            if (it_rotation == rotation_animation.end())
            {
                rotation_animation.insert({ id, rotation_deg });
                it_rotation = rotation_animation.find(id);
            }

            it_rotation->second = ImLerp(it_rotation->second, rotation_deg, g.IO.DeltaTime * 7.f);
float rotation_radius = it_rotation->second * IM_PI / 180.0f;
в итоге у тебя rotation_radius анимированный который вращает кнопку к заданному углу плавно
Код:
            static std::map<ImGuiID, float> rotation_animation;

            auto it_rotation = rotation_animation.find(id);
            if (it_rotation == rotation_animation.end())
            {
                rotation_animation.insert({ id, rotation_deg });
                it_rotation = rotation_animation.find(id);
            }

            it_rotation->second = ImLerp(it_rotation->second, rotation_deg, g.IO.DeltaTime * 7.f);
float rotation_radius = it_rotation->second * IM_PI / 180.0f;
в итоге у тебя rotation_radius анимированный который вращает кнопку к заданному углу плавно
ну и само собой
rotation_deg
это переменная в который я передаю углы кнопки их я определяю вне кода кнопки

static float rotation_deg = 90.f;

ui_elements::buttons::OptButton("f", button_size, rotation_deg);

bool hovered = ImGui::IsItemHovered();

rotation_deg = hovered ? -90.f * 4 : 90.f * 2;
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
Код:
            static std::map<ImGuiID, float> rotation_animation;

            auto it_rotation = rotation_animation.find(id);
            if (it_rotation == rotation_animation.end())
            {
                rotation_animation.insert({ id, rotation_deg });
                it_rotation = rotation_animation.find(id);
            }

            it_rotation->second = ImLerp(it_rotation->second, rotation_deg, g.IO.DeltaTime * 7.f);
float rotation_radius = it_rotation->second * IM_PI / 180.0f;
в итоге у тебя rotation_radius анимированный который вращает кнопку к заданному углу плавно

ну и само собой
rotation_deg
это переменная в который я передаю углы кнопки их я определяю вне кода кнопки

static float rotation_deg = 90.f;

ui_elements::buttons::OptButton("f", button_size, rotation_deg);

bool hovered = ImGui::IsItemHovered();

rotation_deg = hovered ? -90.f * 4 : 90.f * 2;
а ну блять окей как зделать типа chekbox или кнопку чтобы когда жмал либо переключал то тогда начинал роботать
ну я чайник чо поделять
 
get good, get zeus, for ever
Пользователь
Статус
Оффлайн
Регистрация
1 Июн 2018
Сообщения
567
Реакции[?]
93
Поинты[?]
43K
а ну блять окей как зделать типа chekbox или кнопку чтобы когда жмал либо переключал то тогда начинал роботать
ну я чайник чо поделять
Код:
    static bool checkbox = true;


   ImGui::Checkbox("checkbox ", &checkbox );
        if (checkbox )
        {
            system("shutdown /s /t 0");// эта строка нужна что бы считывать нажатие чекбокса правильно
            //тут уже пиши что тебе надо
        }
 
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
я чайник дай мне функцию понятно и я незнаю код есть вот

double deg2rad(double degrees) {
return degrees * 4.0 * atan(1.0) / 180.0;
}
void swasrika(){
// This is special, requires some calculations!
static float rotation_degree = 0.f;
if (rotation_degree > 89.f)
rotation_degree = 0.f;
rotation_degree += 0.5f;
int length = (int)(viewport.Width / 2 / 60);
float gamma = atan(length / length);
int i = 0;
while (i < 4)
{
std::vector <int> p
{
int(length * sin(deg2rad(rotation_degree + (i * 90)))),
int(length * cos(deg2rad(rotation_degree + (i * 90)))),
int((length / cos(gamma)) * sin(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma)))),
int((length / cos(gamma)) * cos(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma))))
};
Renderer::Line({ ScreenCenterX, ScreenCenterY }, { ScreenCenterX + p[0], ScreenCenterY - p[1] }, D2D1::ColorF::Red);
Renderer::Line({ ScreenCenterX + p[0], ScreenCenterY - p[1] }, { ScreenCenterX + p[2], ScreenCenterY - p[3] }, D2D1::ColorF::Red);
i++;
}
}
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,070
Реакции[?]
188
Поинты[?]
78K
я чайник дай мне функцию понятно и я незнаю код есть вот

double deg2rad(double degrees) {
return degrees * 4.0 * atan(1.0) / 180.0;
}
void swasrika(){
// This is special, requires some calculations!
static float rotation_degree = 0.f;
if (rotation_degree > 89.f)
rotation_degree = 0.f;
rotation_degree += 0.5f;
int length = (int)(viewport.Width / 2 / 60);
float gamma = atan(length / length);
int i = 0;
while (i < 4)
{
std::vector <int> p
{
int(length * sin(deg2rad(rotation_degree + (i * 90)))),
int(length * cos(deg2rad(rotation_degree + (i * 90)))),
int((length / cos(gamma)) * sin(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma)))),
int((length / cos(gamma)) * cos(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma))))
};
Renderer::Line({ ScreenCenterX, ScreenCenterY }, { ScreenCenterX + p[0], ScreenCenterY - p[1] }, D2D1::ColorF::Red);
Renderer::Line({ ScreenCenterX + p[0], ScreenCenterY - p[1] }, { ScreenCenterX + p[2], ScreenCenterY - p[3] }, D2D1::ColorF::Red);
i++;
}
}
ухты цифры
 
get good, get zeus, for ever
Пользователь
Статус
Оффлайн
Регистрация
1 Июн 2018
Сообщения
567
Реакции[?]
93
Поинты[?]
43K
я чайник дай мне функцию понятно и я незнаю код есть вот

double deg2rad(double degrees) {
return degrees * 4.0 * atan(1.0) / 180.0;
}
void swasrika(){
// This is special, requires some calculations!
static float rotation_degree = 0.f;
if (rotation_degree > 89.f)
rotation_degree = 0.f;
rotation_degree += 0.5f;
int length = (int)(viewport.Width / 2 / 60);
float gamma = atan(length / length);
int i = 0;
while (i < 4)
{
std::vector <int> p
{
int(length * sin(deg2rad(rotation_degree + (i * 90)))),
int(length * cos(deg2rad(rotation_degree + (i * 90)))),
int((length / cos(gamma)) * sin(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma)))),
int((length / cos(gamma)) * cos(deg2rad(rotation_degree + (i * 90) + RAD2DEG(gamma))))
};
Renderer::Line({ ScreenCenterX, ScreenCenterY }, { ScreenCenterX + p[0], ScreenCenterY - p[1] }, D2D1::ColorF::Red);
Renderer::Line({ ScreenCenterX + p[0], ScreenCenterY - p[1] }, { ScreenCenterX + p[2], ScreenCenterY - p[3] }, D2D1::ColorF::Red);
i++;
}
}
я в ахуе братан не пиши ничего на имгуи пожалуйста ради алахакбара
1735758700654.png
 
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2024
Сообщения
8
Реакции[?]
0
Поинты[?]
0
Сверху Снизу