-
Автор темы
- #1
В файле, с этим кодом, или в includes необходимо подключить библиотеки:
После всего что мы сделали получаем вот такой результат. А дальше, если у вас есть желание, вы сможете сделать из этого конфетку
C++:
#include <vector>
#include <cstring>
#include <string>
Структура для хранения информации о логах:
struct LogEntry {
char text[256];
float display_time;
};
Переменные для логирования:
std::vector<LogEntry> logs;
const float log_display_duration = 3.0f;
Основной Код:
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();
}