GLUT中的流畅键盘输入
Fluid keyboard input in GLUT?
我正在使用Open C++GL开发一个2D程序。我正在使用 Glut 键盘功能。它的问题在于它一次只能响应一个键。
例:当我同时按 UP 和 RIGHT 时,它不会按预期对角线移动,而是向上或向右移动。
我的 switch 语句看起来像这样:
case GLUT_KEY_UP:
f.Move(UP);
break;
case GLUT_KEY_DOWN:
f.Move(DOWN);
break;
Move()
函数添加或减去对象的 (x,y) 值。
我的处理(switch 语句)有问题吗?还是 Glut 的 kb 函数只是有限?
还有其他方法可以解决这个问题吗?我真的不想浪费时间试图弄清楚问题出在库本身,并且可以在其他地方找到更好的解决方案。
这个想法是跟踪按键的状态,而不是在按下按键的瞬间立即执行某些操作。
我相信其他人可以更好地解释,但基本上,看起来您目前正在告诉计算机立即向与键对应的方向移动(例如 10 像素)。如果你真的考虑一下,那么就没有一种可能的方式对角线移动,因为这甚至不是计算机知道的概念。
你想考虑物理。速度,力(请记住,加速度是速度的时间导数,速度是位置的时间导数)。然后,您可以提出一个方案,如何让计算机了解任意方向,而不是执行 4 个单独的硬编码操作。
相关文章:
- 视窗键盘输入 c++
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- C ++异步键盘输入(标准方式)
- 盖奇不读取键盘输入
- 在 Linux 上C++:在作为 systemd 服务运行时侦听键盘输入
- 是否可以将键盘输入绑定到 Win32 中的单个应用程序?
- 使用 Windows API c++ 的键盘输入
- 如何检查从键盘输入的特定整数值是否存在于C++文件中的一行或多行中
- 为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?
- 从特定 USB 端口捕获键盘输入
- 使用 sfml 进行 2 个键盘输入
- 如何对并行键盘输入进行编程
- 区分键盘记录器中的密码和其他类型的键盘输入
- OpenGL/GLFW/GLM-键盘输入无反应
- 在 MFC 应用中模拟应用内的键盘输入C++
- 如何在C++中终止具有键盘输入的侦听 TCP 服务器
- 通过键盘输入字符串数组和 int 数组的数组大小
- QString变量在使用QT Creator从键盘输入的双变量后跳过
- 如何在CPP中获取直接键盘输入?(跨平台)
- SDL键盘输入未触发