Я пытаюсь заставить мою игру что-то делать, когда я нажимаю клавишу. Я использую GLFW для обработки Windows API для меня. Я застрял и запутался, когда использовал функцию обратного вызова в заголовке.
Ссылочный документ: https://www.glfw.org/docs/latest/input_guide.html#input_keyboard
Я следовал за ресурсами «Ввод ключа» (не «Ввод текста»), но я получаю своего рода кривую обратного вызова для ввода текста, например, когда я продолжаю нажимать клавишу, я получаю событие нажатия клавиши, затем оно останавливается на некоторое время, и тогда я получаю повторяющиеся события. Разве обратные вызовы не должны быть постоянными во времени (без этого промежутка времени)? Это мой код:
void onKeyPress(GLFWwindow* window, int key, int scancode, int action, int mods)
{
if (key == GLFW_KEY_W && action != GLFW_RELEASE)
{
camera.pos += glm::vec3(0.0f, 0.0f, 1.0f);
updateCameraMatrices();
}
}
// ...
glfwSetKeyCallback(window, onKeyPress);