SDL2.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;
		}
	    }
	}




阅读更多
个人分类: SDL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭