Вопрос Че по анимациям

Emton
Пользователь
Статус
Оффлайн
Регистрация
20 Мар 2021
Сообщения
115
Реакции[?]
40
Поинты[?]
0
я взял анимации у него,
Пожалуйста, авторизуйтесь для просмотра ссылки.
едова, все перенес в своe меню, я просто ctrl+c, ctrl+v, но анимации не работают в кс, а в демке работают, меня заскамили? я мамонт? how it's fixed?
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июн 2021
Сообщения
10
Реакции[?]
6
Поинты[?]
0
Анимации чего?
Можно код?
Относительно какого времени анимации?
Слишком не понятен вопрос.
 
Забаненный
Статус
Оффлайн
Регистрация
21 Фев 2019
Сообщения
238
Реакции[?]
211
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотри в объявлении функций, правильно ты их указал или нет

Как пример если стандартный ImGui::Button, а чел сделал ImGui::button, то соответственно, и работать у тебя будут дефолтные функции ?
 
Emton
Пользователь
Статус
Оффлайн
Регистрация
20 Мар 2021
Сообщения
115
Реакции[?]
40
Поинты[?]
0
C++:
bool ImGui::Checkbox(const char* label, bool* v)
{

    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const float w = ImGui::CalcItemWidth() + ImGui::CalcItemWidth() * 0.3f;
    const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true);
    const float square_sz = ImGui::GetFrameHeight();
    const ImVec2 pos = window->DC.CursorPos;
    const ImRect total_bb(pos, pos + ImVec2(square_sz + (label_size.x + label_size.x + 15), 15 + 0 + 0));
    ItemSize(total_bb, style.FramePadding.y);
    ItemAdd(total_bb, id);

    bool hovered, held;
    bool pressed = ButtonBehavior(total_bb, id, &hovered, &held);

    if (hovered || held)
        ImGui::SetMouseCursor(0);

    if (pressed)
        *v = !(*v);

    static std::map<ImGuiID, float> filled_anim;
    auto it_filled = filled_anim.find(id);
    if (it_filled == filled_anim.end())
    {
        filled_anim.insert({ id, 1.f });
        it_filled = filled_anim.find(id);
    }
    if (*v)
    {
        if (it_filled->second < 1.f)
            it_filled->second += 0.1f;
    }
    else
    {
        if (it_filled->second > 0.f)
            it_filled->second -= 0.1f;
    }

    window->DrawList->AddRectFilled(ImVec2(total_bb.Min.x + 0, total_bb.Min.y + 0), ImVec2(total_bb.Min.x + 15, total_bb.Min.y + 15), ImGui::GetColorU32(ImVec4(90 / 255.f, 90 / 255.f, 90 / 255.f, it_filled->second)), 3, 15);
    ImGui::RenderCheckMark(window->DrawList, total_bb.Min + ImVec2(3, 1), ImColor(229 / 255.f, 229 / 255.f, 229 / 255.f, it_filled->second), 10);
    window->DrawList->AddRect(ImVec2(total_bb.Min.x + 0, total_bb.Min.y + 0), ImVec2(total_bb.Min.x + 15, total_bb.Min.y + 15), ImColor(112, 112, 112, 255), 3, 15, 1.000000);

    ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(229 / 255.f, 229 / 255.f, 229 / 255.f, 255 / 255.f));
    ImGui::RenderText(ImVec2(total_bb.Min.x + style.ItemInnerSpacing.x + 20, total_bb.Min.y + style.FramePadding.y - 0), label);
    ImGui::PopStyleColor();
    return pressed;
}
все вроде правильно, на демке имгуя работает, в игре нет
Анимации чего?
Можно код?
Относительно какого времени анимации?
Слишком не понятен вопрос.
C++:
bool ImGui::Checkbox(const char* label, bool* v)
{

    ImGuiWindow* window = GetCurrentWindow();
    if (window->SkipItems)
        return false;

    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(label);
    const float w = ImGui::CalcItemWidth() + ImGui::CalcItemWidth() * 0.3f;
    const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true);
    const float square_sz = ImGui::GetFrameHeight();
    const ImVec2 pos = window->DC.CursorPos;
    const ImRect total_bb(pos, pos + ImVec2(square_sz + (label_size.x + label_size.x + 15), 15 + 0 + 0));
    ItemSize(total_bb, style.FramePadding.y);
    ItemAdd(total_bb, id);

    bool hovered, held;
    bool pressed = ButtonBehavior(total_bb, id, &hovered, &held);

    if (hovered || held)
        ImGui::SetMouseCursor(0);

    if (pressed)
        *v = !(*v);

    static std::map<ImGuiID, float> filled_anim;
    auto it_filled = filled_anim.find(id);
    if (it_filled == filled_anim.end())
    {
        filled_anim.insert({ id, 1.f });
        it_filled = filled_anim.find(id);
    }
    if (*v)
    {
        if (it_filled->second < 1.f)
            it_filled->second += 0.1f;
    }
    else
    {
        if (it_filled->second > 0.f)
            it_filled->second -= 0.1f;
    }

    window->DrawList->AddRectFilled(ImVec2(total_bb.Min.x + 0, total_bb.Min.y + 0), ImVec2(total_bb.Min.x + 15, total_bb.Min.y + 15), ImGui::GetColorU32(ImVec4(90 / 255.f, 90 / 255.f, 90 / 255.f, it_filled->second)), 3, 15);
    ImGui::RenderCheckMark(window->DrawList, total_bb.Min + ImVec2(3, 1), ImColor(229 / 255.f, 229 / 255.f, 229 / 255.f, it_filled->second), 10);
    window->DrawList->AddRect(ImVec2(total_bb.Min.x + 0, total_bb.Min.y + 0), ImVec2(total_bb.Min.x + 15, total_bb.Min.y + 15), ImColor(112, 112, 112, 255), 3, 15, 1.000000);

    ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(229 / 255.f, 229 / 255.f, 229 / 255.f, 255 / 255.f));
    ImGui::RenderText(ImVec2(total_bb.Min.x + style.ItemInnerSpacing.x + 20, total_bb.Min.y + style.FramePadding.y - 0), label);
    ImGui::PopStyleColor();
    return pressed;
}
вот код чекбокса, анимации на демке имгуя работают, в игре не работают
 
Сверху Снизу