首页 > 系统相关 >Ubuntu glfw轮询获取按键事件

Ubuntu glfw轮询获取按键事件

时间:2024-08-26 12:25:46浏览次数:17  
标签:函数 camera 轮询 processInputs window glfwGetKey GLFW 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函数被调用前这个键又被松开了。也就是说,当我们只关心键是否被按下过、而不关心它是何时被按下的时,就可以设置这个状态。

标签:函数,camera,轮询,processInputs,window,glfwGetKey,GLFW,Ubuntu,glfw
From: https://blog.csdn.net/wenwang88/article/details/141560896

相关文章

  • Ubuntu 安裝 VMware Workstation Pro
    安装下载依赖:#Ubuntu22.04及以前sudoaptinstalllibaio1#Ubuntu24.04及以后sudoaptinstalllibaio1t64sudoln-s/usr/lib/x86_64-linux-gnu/libaio.so.1t64/usr/lib/x86_64-linux-gnu/libaio.so.1打开博通产品页面BroadComVMwareWorkstationPro,下载......
  • redis下载与安装(以Ubuntu Linux为例)
    redis的下载与安装(Ubuntu)一、下载从GitHub上下载redis官方压缩包:redis官方将下载好的压缩包放入家目录(~)下。(可以使用一些ftp工具将文件传输到Ubuntu)二、安装解压并执行shell命令#进入家目录cd~#7.4.0是我此时安装的版本#输入tarzxvfredis后按tab键补全即可......
  • 【实战经验】在ubuntu系统更新DNS服务
    最近遇到了一个问题,就是在安装的时候没有配置好DNS服务,导致系统安装后无法上网。一、DNS部署介绍说明:在Linux上实现DNS服务配置,可以使用以下步骤:安装DNS服务器软件:在Linux上有多种DNS服务器软件可选择,比如BIND、dnsmasq等。选择其中一种安装,并确保软件已被正确安装。配......
  • 经验分享:Ubuntu 22.04安装微信
    经验分享:Ubuntu22.04安装微信Ubuntu22.04作为Ubuntu的长期支持版本(LTS),以其稳定性和广泛的支持受到了许多用户的青睐。然而,由于微信官方并未直接提供Linux版本的客户端,因此在Ubuntu22.04上安装微信通常需要借助第三方工具或方法。以下将详细介绍几种在Ubuntu22.04上安装......
  • Ubuntu美化为类Windows风格
    博主的系统为Ubuntu22.04参考文献:HowtoMakeUbuntuLookLikeWindows11|22.04GNOME43/42|LinuxAFTech可能遇到的bug的解决方法:如何在Linux中安装和更改GNOME主题先来一下视频演示:先欠着。下面正式开始安装。在主文件夹下打开终端sudoaptinstal......
  • linux ubuntu驱动签名
    Aug2307:07:16ubuntukernel:JWNetFilter:loadingout-of-treemoduletaintskernel.Aug2307:07:16ubuntukernel:JWNetFilter:moduleverificationfailed:signatureand/orrequiredkeymissing-taintingkernelAug2307:07:16ubuntukernel:JWNetFilte......
  • Ubuntu安装arm交叉编译环境
    本地机是x86架构,目标机是arm64架构。CPU架构描述x86_64 /x86/amd6464位AMD/英特尔CPU的别称AArch64 /arm64/ARMv8/ARMv964位ARMCPU的别称i38632位AMD/英特尔CPUAArch32 /arm/ARMv1 到 ARMv732位ARMCPU的别称......
  • centos单网卡配置VLAN,ubuntu当网卡配置VLAN,vlanid=1000
    root@ubuntu:~#cat/etc/netplan/01-netcfg.yaml#Thisfiledescribesthenetworkinterfacesavailableonyoursystem#Formoreinformation,seenetplan(5).network:version:2renderer:networkdethernets:enp9s0:dhcp4:novlans:......
  • 保姆级教你如何安装Ubuntu系统和配置远程访问
    一.UNIX系统和Linux系统介绍1.UNIX简介1965年,美国麻省理工学院(MIT)、通用电气公司(GE)及AT&T的贝尔实验室联合开发Mulitics工程计划,期目标是开发一种交互式的具有多道程序处理能力的分时操作系统,但因Mulitics最求的目标过于庞大,项目进度远远落后于计划,最后贝尔实验室宣......
  • ubuntu18安装novnc实现web远程桌面
    1.安装基础软件sudoaptinstall-ygit 2.下载novncsudogitclonegit://github.com/kanaka/noVNC/opt/novnc 3.修改权限sudochown-R$USER:$USER/opt/novnc 4.安装并运行vnc服务sudoaptinstall-ytightvncserversudovncserver 5.生成证书......