sách gpt4 ăn đã đi

c++ - GLFW 切换 bool 切换

In lại Tác giả: Walker 123 更新时间:2023-11-30 03:20:52 27 4
mua khóa gpt4 giày nike

我正在使用 GLFW 进行键盘输入,但处理速度太快,因此我的 bool 开关在一次按下时被更改了 10 次,因为输入是每一帧处理的。我只需要按一次空格键即可切换状态。我当前的代码如下:

if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS)
{
show = !show;
}

有更好的方法吗?

câu trả lời hay nhất

是的。 glfwGetKey 用于连续键输入。 GLFW manual如果您想要关于按键按下的一次性通知,则列出 glfwSetKeyCallback 作为更好的选择。

因此,对于您的情况,它应该是这样的:

void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
if (key == GLFW_KEY_SPACE && action == GLFW_PRESS)
show = !show;
}

如果你出于某种原因不想使用这个方法,你总是可以自己实现一个类似的东西。您需要一个表示键状态的 bool 值(或值数组)。然后,在您的输入处理中,您必须只对按钮状态的更改使用react,如下所示:

bool spacePressed;

// in handling
bool spaceCurrentlyPressed = glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS;

if (!spacePressed && spaceCurrentlyPressed) { // wasn't before, is now
show = !show;
}
spacePressed = spaceCurrentlyPressed;

关于c++ - GLFW 切换 bool 切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492426/

27 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress