SDL2 键盘检测不起作用
SDL2 keyboard detection doesn't work
我尝试使用SDL2来处理键盘事件。但是主要的问题是,在Clion嵌入式控制台或外部控制台中,我的程序都无法检测到任何事件,只有SDL_AUDIODEVICEADDED
在程序开始时被捕获两次。这是我的代码:
#include <iostream>
#include "include/SDL2/SDL_keyboard.h"
#include "include/SDL2/SDL_keycode.h"
#include "include/SDL2/SDL_scancode.h"
#include "include/SDL2/SDL.h"
using namespace std;
int main(int argc, char* argv []) {
SDL_Event event;
bool running = true;
SDL_Init(SDL_INIT_EVERYTHING);
int x, y;
while(running){
if(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT: running = false; break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym){
case SDLK_q:
running = false;
break;
}
break;
case SDL_MOUSEBUTTONDOWN:
SDL_GetMouseState(&x, &y);
cout << "[SDL_MOUSEBUTTONDOWN] " << "x = " << x << " y = " << y << "n";
break;
case SDL_MOUSEMOTION:
x = event.motion.x;
y = event.motion.y;
cout << "[SDL_MOUSEMOTION] " << "x = " << x << " y = " << y << "n";
break;
}
}
}
}
SDL_Init
返回0。
您需要创建一个窗口。
键盘和鼠标事件取决于显示表面。在窗口焦点时,仅在窗口和键盘输入中只有鼠标动作。毕竟,您应该无法接收可能针对其他应用程序的输入。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- SDL2 键盘检测不起作用
- SFINAE:检测成员变量的存在在 g++ 上不起作用
- 使用简单的BlobDetector进行对象检测,但它不起作用
- 在unix平台上使用curses检测c++中的箭头键输入在调用系统命令后不起作用
- Dlib正面人脸检测在IOS中不起作用
- C++碰撞检测在上次检查时不起作用?
- 使用opencv的人脸检测不起作用
- 人脸检测不起作用