Какова обычная практика хранения bool, чтобы определить, удерживается ли ключ?C++

Программы на C++. Форум разработчиков
Anonymous
Какова обычная практика хранения bool, чтобы определить, удерживается ли ключ?

Сообщение Anonymous »

Я новичок в OpenGL и использую GLFW для ввода. Недавно я разрабатывал простую программу для создания фигур при нажатии левой кнопки мыши. Если удерживать левую кнопку мыши, фигура будет следовать за мышью, пока не будет отпущена левая кнопка мыши. В настоящее время у меня есть глобальная переменная bool, отслеживающая, когда ключ удерживается или отпускается. Обратный вызов щелчка мыши меняет значение bool с true на false соответственно. Я знаю, что использовать глобальные переменные — плохая практика, поэтому как лучше это сделать? Я читал, что для отслеживания этого обычно используется отдельный объект-буфер, но какой буфер я бы хотел использовать? Или есть лучший способ сделать это, о котором я не знаю?
// Globals
// -------
bool keyHeld = false;

int main() {

while (!glfwWindowShouldClose(window)) {
if (keyHeld) {

// Get screen coordinates
// Get Cursor Position
// Convert position to clip. coords.
// Create transformation matrix

}
}
// Send matrix to uniform in shader
// Render shape

return 0;
}

void mouse_callback(GLFWwindow* window, int button, int action, int mods) {

if (button == GLFW_MOUSE_BUTTON_LEFT && action == GLFW_PRESS)
keyHeld = true;

if (button == GLFW_MOUSE_BUTTON_LEFT && action == GLFW_RELEASE)
keyHeld = false;

}


Подробнее здесь: https://stackoverflow.com/questions/789 ... ey-is-held

Вернуться в «C++»