Ubuntu glfw轮询获取按键事件

这种方法的使用方式如下:

复制代码
while (!glfwWindowShouldClose(window))
    {
        processInputs(window);
        ...
    }

processInputs中包含的要素和上面介绍的回调函数差不多,只是用到了另一个GLFW的函数glfwGetKey。最终效果上,这个函数返回任意时间某个键的状态,就是这个函数使得连续效果得以实现。processInputs可以这样实现:

复制代码
void processInputs(GLFWwindow* window)
{
    // move the camera
    if (glfwGetKey(window, GLFW_KEY_LEFT) == GLFW_PRESS)
        camera_x -= camera_speed;
}

何时使用

  • 对按键速度要求高甚至是一直按着,需要连续效果

glfwGetKey被调用前键被松开了怎么办

除了用户的操作外,函数glfwSetInputMode也会影响到glfwGetKey的返回值。

void glfwSetInputMode(GLFWwindow* window, int mode, int value)

当mode为GLFW_STICKY_KEYS且value为GLFW_TRUE时,只要按下一个键,那么glfwGetKey返回的该键的状态一定是按下的,哪怕在glfwGetKey函数被调用前这个键又被松开了。也就是说,当我们只关心键是否被按下过、而不关心它是何时被按下的时,就可以设置这个状态。

相关推荐
为思念酝酿的痛5 小时前
POSIX信号量
linux·运维·服务器·后端
人还是要有梦想的6 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
bush46 小时前
嵌入式linux学习记录二
linux·运维·学习
9分钟带帽6 小时前
linux_通过NFS挂载远程服务器的硬盘
linux·服务器
运维栈记9 小时前
API Error: 400 Request body format invalid
linux·ai
小白兔奶糖ovo9 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
s_w.h10 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
顺风尿一寸10 小时前
深入Linux内核:mkdir系统调用的完整实现解析
linux
用户23678298016810 小时前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux
无足鸟ICT11 小时前
【RHCA+】boxes命令(艺术框)
linux