SDL2新手入门 —— 事件处理

SDL2 阅读(164)

# 事件处理  
SDL2中采用共用体(`union`)类型[`SDL_Event`](http://wiki.libsdl.org/SDL_Event)将所有事件的接口统一,其第一个成员`type`用于区分[事件类型](http://wiki.libsdl.org/SDL_EventType)。

使用[`SDL_PollEvent`](http://wiki.libsdl.org/SDL_PollEvent)或[`SDL_WaitEvent`](http://wiki.libsdl.org/SDL_WaitEvent)从事件队列里读取一个事件,当没有事件时前者返回0,后者阻塞等待事件产生。  
```C
#include <SDL_events.h>
int SDL_PollEvent(SDL_Event* event)
// 成功返回1,没有事件返回0

int SDL_WaitEvent(SDL_Event* event)
// 成功返回1,失败返回0
```

使用[`SDL_PushEvent`](http://wiki.libsdl.org/SDL_PushEvent)向事件队列里添加一个事件 :  
```C
int SDL_PushEvent(SDL_Event* event);
// 成功返回1,事件被过滤返回0,失败返回负值
```

使用[`SDL_HasEvent`](http://wiki.libsdl.org/SDL_HasEvent)来判断事件队列里是否有某一类型的事件 :  
```C
#include <SDL_events.h>
SDL_bool SDL_HasEvent(Uint32 type)
//存在该类型的事件返回SDL_TRUE ,否则返回SDL_FALSE 
```

Markdown使用 帮助


匿名

我有一头小毛驴,我从来也不骑。

匿名

富强 民主 文明 和谐 自由 平等 公正 法治 爱国 敬业 诚信 友善

匿名

我有一头小毛驴,我从来也不骑。

匿名

爆ぜろリアル  弾けろシナプス   バニッシュメント・ディス・ワールド!