QT 键按下事件太慢
QT keyPressedEvent too slow?
我正在使用qt创建器开发一个射击游戏,我的问题是与场景keyPressEvent
功能的链接:
void Scene::keyPressEvent(QKeyEvent *event){
liste_event << event->key();
if (liste_event.contains(Qt::Key_Left)) {
vaisseau->MoveX(-1);
}
if (liste_event.contains(Qt::Key_Right)) {
vaisseau->MoveX(1);
}
}
它编译,但我的精灵(vasisseau)移动得很慢。如何改进代码以使其移动得更快?
好吧,问题是您将游戏的动画留给了 keyPressEvent
,它不会像您希望的那样频繁触发。
为了解决这个问题,我建议你使用传统的方法,它涉及一个函数来draw()
场景(及其对象)。这个想法是,这个函数每X毫秒调用一次,并且绘图将独立于是否按下键而工作。
因此,在这种情况下,在keyPressEvent
中,您只需存储按下的键,Scene::draw()
中,您将实现基于存储的键使用适当参数调用MoveX()
的逻辑。
相关文章:
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- 具有Qt事件循环的可移植通用共享库设置
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- Qt:事件过滤器在显示 QCompleter 时不接收按键
- Qt 中的去抖动事件过滤器
- QT 事件过滤器 mouseEvent->pos().x() 始终为零,但 mouseEvent->pos().y() 工作正常
- Qt应用程序不响应鼠标和键盘事件
- Qt将鼠标移动事件转移到新窗口
- 如何从qml Keys.oPressed调用qt keyPressEvent(QKeyEvent*事件)
- Qt-如何在Qt3DWindow上获取鼠标事件
- 如何使用 QT 和 C++ 侦听 mysql 数据库中的触发事件?
- Qt:如何防止为平板电脑事件生成鼠标事件
- 检测键按事件 - Qt C++上的插入符号 (^) 键
- 如何等待密钥事件,直到进程在 QT 中完成
- Qt 键按事件处理程序仅在按下 ctrl、alt 或 shift 键时做出反应
- 如何从Qt绑定到在Windows 7 / 8 / 10中连接/断开USB设备事件
- 覆盖Qt的鼠标按下事件中断移动事件参数
- Qt 如何使用鼠标移动事件移动视图
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- 映射键按事件qt