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

来源:互联网 发布:java程序代码及结果 编辑:程序博客网 时间:2024/05/17 11:35

 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 0