Гайд [ImGui] Как сделать логи

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
28 Сен 2024
Сообщения
18
Реакции
2
В файле, с этим кодом, или в includes необходимо подключить библиотеки:

C++:
Expand Collapse Copy
#include <vector>
#include <cstring>
#include <string>

Структура для хранения информации о логах:
Expand Collapse Copy
struct LogEntry {
    char text[256];
    float display_time;
};

Переменные для логирования:
Expand Collapse Copy
std::vector<LogEntry> logs;
const float log_display_duration = 3.0f;

Основной Код:
Expand Collapse Copy
        ImGui::Begin("Window", nullptr);

        static char log_text[256] = "";
        ImGui::InputText("Log Text", log_text, sizeof(log_text));

        if (ImGui::Button("Show Log")) {
            LogEntry new_log;
            std::strncpy(new_log.text, log_text, sizeof(new_log.text));
            new_log.display_time = log_display_duration;
            logs.push_back(new_log);
        }
        ImGui::End();

        for (size_t i = 0; i < logs.size(); ) {
            logs[i].display_time -= ImGui::GetIO().DeltaTime;
            if (logs[i].display_time <= 0.0f) {
                logs.erase(logs.begin() + i);
            }
            else {
                i++;
            }
        }

        for (size_t i = 0; i < logs.size(); ++i) {
            ImGui::SetNextWindowPos(ImVec2(20.0f, 20.0f + i * 50.0f));
            ImGui::Begin(std::to_string(i).c_str(), nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_AlwaysAutoResize);
            ImGui::Text("%s", logs[i].text);
            ImGui::End();
        }

После всего что мы сделали получаем вот такой результат. А дальше, если у вас есть желание, вы сможете сделать из этого конфетку

TBMkFtK.png
 
В файле, с этим кодом, или в includes необходимо подключить библиотеки:

C++:
Expand Collapse Copy
#include <vector>
#include <cstring>
#include <string>

Структура для хранения информации о логах:
Expand Collapse Copy
struct LogEntry {
    char text[256];
    float display_time;
};

Переменные для логирования:
Expand Collapse Copy
std::vector<LogEntry> logs;
const float log_display_duration = 3.0f;

Основной Код:
Expand Collapse Copy
        ImGui::Begin("Window", nullptr);

        static char log_text[256] = "";
        ImGui::InputText("Log Text", log_text, sizeof(log_text));

        if (ImGui::Button("Show Log")) {
            LogEntry new_log;
            std::strncpy(new_log.text, log_text, sizeof(new_log.text));
            new_log.display_time = log_display_duration;
            logs.push_back(new_log);
        }
        ImGui::End();

        for (size_t i = 0; i < logs.size(); ) {
            logs[i].display_time -= ImGui::GetIO().DeltaTime;
            if (logs[i].display_time <= 0.0f) {
                logs.erase(logs.begin() + i);
            }
            else {
                i++;
            }
        }

        for (size_t i = 0; i < logs.size(); ++i) {
            ImGui::SetNextWindowPos(ImVec2(20.0f, 20.0f + i * 50.0f));
            ImGui::Begin(std::to_string(i).c_str(), nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_AlwaysAutoResize);
            ImGui::Text("%s", logs[i].text);
            ImGui::End();
        }

После всего что мы сделали получаем вот такой результат. А дальше, если у вас есть желание, вы сможете сделать из этого конфетку

TBMkFtK.png
подскажи как сделать ргб линию? как в меню скита
 
подскажи как сделать ргб линию? как в меню скита
 
Назад
Сверху Снизу