SDL2.0学习笔记——事件处理

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 17:13   11   0

http://qaz2549066580.blog.163.com/blog/static/24104508620160493356972/

SDL通过SDL_PollEvent函数从事件队列中取出最早发生的事件并填充SDL_Event结构。调用SDL_PollEvent后最早发生的事件从事件队列中清除。SDL_PollEvent函数原型为:

    int SDL_PollEvent(SDL_Event* event);   //当事件队列中有未处理的事件时SDL_PollEvent返回1,否则返回0

可以通过SDL_Event结构中的type确定发生何种事件。如当用户关闭窗口时会产生SDL_QUIT事件,即

    event.type==SDL_QUIT;

按键时会产生SDL_KEYDOWN事件,可以通过event.key.keysym.sym来确定哪个键被按下,当按下向上箭头时有

    event.key.keysys.sym==SDLK_UP;    //按下向下键时为SDLK_DOWN。

SDL支持的事件https://wiki.libsdl.org/SDL_Keycode

可以用循环程序处理事件。

    SDL_Event event;
    bool quit=false;
    unsigned int time=500;

    while(!quit){
 while(SDL_PollEvent(&event)){
     if(event.type==SDL_QUIT)
  quit=true;
     if(event.type==SDL_KEYDOWN){
  switch(event.key.keysym.sym){
      case SDLK_UP: time+=50; break;
      case SDLK_DOWN: time-=50; break;
  }
     }
 }




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP