0

不是最好的标题,但是,SDL_Event 与所有 SDL 事件(如 SDL_QuitEvent、SDL_ActiveEvent 等)之间的关系是什么?我正在为 C# 使用 SDL 绑定,但在处理它们时无法确定类型系统使用什么类型;它们不是 SDL_Event 的子类。我应该只使用object,还是有更好的方法?

4

1 回答 1

1

老问题,但仅适用于长尾搜索:

anSDL_Event只是结构(SDL_QuitEvent等)的一大集合。根据SDL_Event::type,您设置或查看不同的子结构及其数据。


来自 SDL1.2 中的SDL_events.h

typedef union SDL_Event {
    Uint8 type;
    SDL_ActiveEvent active;
    SDL_KeyboardEvent key;
    SDL_MouseMotionEvent motion;
    SDL_MouseButtonEvent button;
    .
    .
    .
    SDL_SysWMEvent syswm;
} SDL_Event;

来自SDL2中的 SDL_events.h :

typedef union SDL_Event
{
    Uint32 type;                    /**< Event type, shared with all events */
    SDL_CommonEvent common;         /**< Common event data */
    SDL_WindowEvent window;         /**< Window event data */
    SDL_KeyboardEvent key;          /**< Keyboard event data */
    .
    .
    .
} SDL_Event;
于 2013-10-16T17:19:42.867 回答