#include "imgui.h" // Переменная для хранения состояния бинда bool functionActive = false; // Переменная для хранения нажатой клавиши (например, 'K') int keyBind = 'K'; // Функция, которая будет вызываться void MyFunction() { // Реализация функции ImGui::Text("Function is active!"); } // Функция обработки клавиатуры void ProcessInput() { if (ImGui::IsKeyPressed(keyBind)) { functionActive = !functionActive; } } void RenderUI() { // Создание интерфейса ImGui ImGui::Begin("Bind Example"); // Отображение текущего бинда ImGui::Text("Current bind: %c", keyBind); // Возможность изменить бинд if (ImGui::InputInt("Set new bind (ASCII code)", &keyBind)) { // Ограничение ввода символов (опционально) if (keyBind < 32 || keyBind > 126) { keyBind = 'K'; // Вернуть к исходному значению в случае неправильного ввода } } // Отображение текущего состояния функции if (functionActive) { MyFunction(); } else { ImGui::Text("Function is inactive."); } ImGui::End(); } int main() { // Инициализация вашего приложения и ImGui // Главный цикл while (!glfwWindowShouldClose(window)) { // Обработка событий glfwPollEvents(); // Запуск ImGui-фрейма ImGui_ImplOpenGL3_NewFrame(); ImGui_ImplGlfw_NewFrame(); ImGui::NewFrame(); // Обработка ввода ProcessInput(); // Рендеринг интерфейса RenderUI(); // Рендеринг ImGui ImGui::Render(); int display_w, display_h; glfwGetFramebufferSize(window, &display_w, &display_h); glViewport(0, 0, display_w, display_h); glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); glClear(GL_COLOR_BUFFER_BIT); ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); // Swap buffers glfwSwapBuffers(window); } // Очистка ресурсов return 0; } Code #include "imgui.h" // Переменная для хранения состояния бинда bool functionActive = false; // Переменная для хранения нажатой клавиши (например, 'K') int keyBind = 'K'; // Функция, которая будет вызываться void MyFunction() { // Реализация функции ImGui::Text("Function is active!"); } // Функция обработки клавиатуры void ProcessInput() { if (ImGui::IsKeyPressed(keyBind)) { functionActive = !functionActive; } } void RenderUI() { // Создание интерфейса ImGui ImGui::Begin("Bind Example"); // Отображение текущего бинда ImGui::Text("Current bind: %c", keyBind); // Возможность изменить бинд if (ImGui::InputInt("Set new bind (ASCII code)", &keyBind)) { // Ограничение ввода символов (опционально) if (keyBind < 32 || keyBind > 126) { keyBind = 'K'; // Вернуть к исходному значению в случае неправильного ввода } } // Отображение текущего состояния функции if (functionActive) { MyFunction(); } else { ImGui::Text("Function is inactive."); } ImGui::End(); } int main() { // Инициализация вашего приложения и ImGui // Главный цикл while (!glfwWindowShouldClose(window)) { // Обработка событий glfwPollEvents(); // Запуск ImGui-фрейма ImGui_ImplOpenGL3_NewFrame(); ImGui_ImplGlfw_NewFrame(); ImGui::NewFrame(); // Обработка ввода ProcessInput(); // Рендеринг интерфейса RenderUI(); // Рендеринг ImGui ImGui::Render(); int display_w, display_h; glfwGetFramebufferSize(window, &display_w, &display_h); glViewport(0, 0, display_w, display_h); glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); glClear(GL_COLOR_BUFFER_BIT); ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); // Swap buffers glfwSwapBuffers(window); } // Очистка ресурсов return 0; }