SDL事件处理框架
来源:互联网 发布:电脑计时器软件 编辑:程序博客网 时间:2024/06/06 15:40
同步事件处理框架:
主循环int quit = false;while(quit == false){while(SDL_PollEvent(&event)){switch(event.type){case SDL_QUIT:quit = true;break;default:break;}}}
还有两个不常用的事件函数:
SDL_WaitEvent();//必须等到有一个事件才返回,而SDL_PollEvent没有事件也立即返回。
SDL_PeepEvent();//从队列中获取事件,但事件本身仍然存在于事件队列中。
异步事件 处理框架:
有时比较复杂的游戏的主循环可能用作其它程序,这时用得上事件过滤器,事件过滤器,在有事件发生调用事件处理回调函数。因此称为异步事件处理.
它调用 void SDL_SetEventFilter(SDL_EventFilter filter);来加入事件过滤回调函数.
其中.filter是一个函数指针,它有如下类型
<pre name="code" class="cpp">SDL_SetEventFilter(SDL_EventFilter);//1.2版本SDL_SetEventFilter(SDL_EventFilter filter,void *userdata);//2.0版本
SDL按键类型:
type : SDL_KEYDOWN
typedef struct SDL_Keysym
{
SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */
SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */
Uint16 mod; /**< current key modifiers */
Uint32 unused;
} SDL_Keysym;
keysym有如下定义(只是一部分)
SDLK_LEFTBRACKET = 91, SDLK_BACKSLASH = 92, SDLK_RIGHTBRACKET = 93, SDLK_CARET = 94, SDLK_UNDERSCORE = 95, SDLK_BACKQUOTE = 96, SDLK_a = 97, SDLK_b = 98, SDLK_c = 99, SDLK_d = 100, SDLK_e = 101, SDLK_f = 102,
事件循环可以这么写:
int quit = false; while( quit == false ) {Now we start the main loop. This loop will keep going until the user sets quit to true. //While there's an event to handle while( SDL_PollEvent( &event ) ) { switch(event.type) { case SDL_QUIT: quit = true; break; case SDL_KEYDOWN: switch( event.key.keysym.sym ) { case SDLK_UP: ; break; case SDLK_DOWN: ; break; case SDLK_a: ; break; case SDLK_RIGHT: ; break; } break; default: break; } }
0 0
- SDL事件处理框架
- SDL Event Handling 事件处理
- SDL解析——SDL事件处理(1)
- SDL学习笔记四(事件处理)
- SDL事件处理(一些数据类型)
- SDL事件处理:SDL_Event结构体
- SDL库的学习笔记之四—事件处理
- 事件处理框架
- 事件处理框架-event_base
- QGraphicsView框架事件处理
- 事件监听处理小框架
- 事件监听处理小框架
- libevent事件处理框架分析
- libevent事件处理框架分析
- libevent事件处理框架分析
- Actor事件处理框架介绍
- SDL 键盘事件监控
- SDL键盘事件
- 第十一周项目判断参数是否为素数
- 你的以太网速度足够快吗?四种更快的速度正在路上······
- Vim杀手级插件YouCompleteMe
- 浏览器原理——网页结构
- 页面嵌入Flex时,JS和AS相互调用(普通嵌入)
- SDL事件处理框架
- PostgreSQL数据库学习手册之大对象
- android下调试3G之手动拨号
- C#打开颜色对话框
- poj 1703 Find them, Catch them (并查集)
- dmidecode
- android--code--从路径获取bitmap对象
- 20140503-Persisitent Contrastive Divergence (持续的逆向差异)
- 校园助手APP--主界面