[英]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。
您需要創建一個窗口。
鍵盤和鼠標事件取決於顯示表面。 將捕獲窗口處於焦點時窗口和鍵盤輸入內的鼠標操作。 畢竟,您應該無法接收可能針對其他應用程序的輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.