SDL2.0 监听键盘事件

来源:互联网 发布:企业海关数据查询 编辑:程序博客网 时间:2024/06/06 16:57
现在我们想要检查是否有按键被按下,我们只需检查事件类型SDL_KEYDOWN
  1. //选择合适的信息表面
  2. switch( event.key.keysym.sym )
  3. {
  4. case SDLK_UP: message = upMessage; break;
  5. case SDLK_DOWN: message = downMessage; break;
  6. case SDLK_LEFT: message = leftMessage; break;
  7. case SDLK_RIGHT: message = rightMessage; break;
  8. }
  9. }
  10. //如果用户点击了窗口右上角的关闭按钮
  11. else if( event.type == SDL_QUIT )
  12. {
  13. //退出程序
  14. quit = true;
  15. }
  16. }
现在,如果有一个键被按下,我们需要检查是哪个键被按下。

函数SDL_PollEvent() 会将 SDL_KEYDOWN 事件的数据以SDL_KeyboardEvent 的类型保存在SDL_Event事件结构体中,并命名为“key”:
“key”结构体中包含了一个名为keysym的结构体: 
并且keysym结构体中有一个名为“sym”,类型为SDL_Key 的数据域,它记录了是哪个按键被按下。

如果向上箭头被按下,sym就会是SDLK_UP ,然后我们就让“Up was pressed”的信息显示出来。同样,如果向下箭头被按下,sym就会是SDLK_DOWN ,然后我们就让“Down was pressed”的信息显示出来,等等。
原创粉丝点击