Ubuntu glfw轮询获取按键事件

news/2024/9/14 0:25:26 标签: ubuntu, linux

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

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函数被调用前这个键又被松开了。也就是说,当我们只关心键是否被按下过、而不关心它是何时被按下的时,就可以设置这个状态。


http://www.niftyadmin.cn/n/5623426.html

相关文章

C++初学者指南-5.标准库(第二部分)–特殊容器

C初学者指南-5.标准库(第二部分)–特殊容器 pair<A , B> 包含两个相同或不同类型的值 tuple<A , B> C11 包含许多相同或不同类型的值 optional C17 包含一个类型为 T 的值或没有值 variant<A,B,C,…> C17 包含一个类型为A、B或C的值…… any C17 包含任…

Hiprint 打印插件在 Vue3 中的深度剖析

一、Hiprint 打印插件简介 Hiprint 打印插件在 Vue3 项目中具有重要的地位和显著的优势。 首先&#xff0c;它为 Vue3 项目提供了强大且便捷的打印功能。在现代的 Web 应用开发中&#xff0c;打印需求常常存在&#xff0c;而 Hiprint 很好地满足了这一需求&#xff0c;让开发…

fastjson漏洞分析与复现

一、基础知识 Fastjson介绍&#xff1a; fastjson是阿里巴巴开源的JSON解析库&#xff0c;它可以解析JSON格式的字符串&#xff0c;支持将Java Bean序列化为JSON字符串&#xff0c;也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将Java Bean序列化成JSON字…

从汇编层看64位程序运行——C++的Copy Elision(复制省略)技术的实现

大纲 Copy Elision的应用场景返回值优化&#xff08;Return Value Optimization, RVO&#xff09;命名返回值优化&#xff08;Named Return Value Optimization, NRVO&#xff09;C11及以后的移动语义 禁用Copy Elision&#xff08;复制省略&#xff09;Copy Elision&#xff0…

AD9161调试问题

AD961同步信号SYNC无法保持高逻辑电 现象 配置ADF4351时钟芯片使其产生频率为1.6GHz的时钟为AD9161提供工作时钟&#xff0c;JESD的线速率配置为8Gbps&#xff0c;并配置AD9161的寄存器使其工作在2x内插模式以实现IQ信号的模数转换模式。同时根据AD9161芯片手册对ADF4351提供的…

ant-design-vue@1在线主题编辑器实现

::: tip 本文介绍工作中碰到的需求&#xff0c;需要基于vue2、ant-design-vue1版本和less实现使用了ant-design-vue组件库的项目在线配置主题。其中核心就是html支持直接引入stylesheet/less&#xff0c;可以使用less.modifyVars修改变量动态编译。 ::: 项目依赖 ant-design-…

LeetCode 0690.员工的重要性:哈希表+广度优先搜索

【LetMeFly】690.员工的重要性&#xff1a;哈希表广度优先搜索 力扣题目链接&#xff1a;https://leetcode.cn/problems/employee-importance/ 你有一个保存员工信息的数据结构&#xff0c;它包含了员工唯一的 id &#xff0c;重要度和直系下属的 id 。 给定一个员工数组 em…

HandBrakeCLI 压缩工具的简单实用

HandBrakeCLI -i input.mp4 -o output.mp4 --encoder qsv_h264 -b 500k --preset "Android 576p25" --width 320 --height 576 --quiet--encoder qsv_h264 意思代表inter的gpu编码 -b 500k 设置比特率 --preset "Android 576p25" 设置预设 --width 320 --…