我使用的是最新版本的SDL,似乎缺少枚举SDL_WINDOWEVENT
在SDL_Events.h中,SDL_Events的定义是:
/** General event structure */
typedef union SDL_Event {
Uint8 type;
SDL_ActiveEvent active;
SDL_KeyboardEvent key;
SDL_MouseMotionEvent motion;
SDL_MouseButtonEvent button;
SDL_JoyAxisEvent jaxis;
SDL_JoyBallEvent jball;
SDL_JoyHatEvent jhat;
SDL_JoyButtonEvent jbutton;
SDL_ResizeEvent resize;
SDL_ExposeEvent expose;
SDL_QuitEvent quit;
SDL_UserEvent user;
SDL_SysWMEvent syswm;
} SDL_Event;我知道有一个来自维基的SDL_WINDOWEVENT
http://wiki.libsdl.org/moin.cgi/SDL_WindowEvent?highlight=%28%5CbCategoryStruct%5Cb%29%7C%28CategoryEvents%29%7C%28SGStructures%29
//
编辑以澄清问题
如果您查看提供的链接,示例代码给出了
void PrintEvent(const SDL_Event * event)
{
if (event->type == SDL_WINDOWEVENT) {
switch (event->window.event) {
case SDL_WINDOWEVENT_SHOWN:
fprintf(stderr, "Window %d shown", event->window.windowID);
break;
// snip
}我的代码
SDL_Event sdlEvent = {0};
while(SDL_PollEvent(&sdlEvent))
{
if(sdlEvent.type == SDL_QUIT)// || isTriggered(SDLK_ESCAPE))
System::getEventManagerGlobal().broadcastEvent( Event("QUIT") );
if(sdlEvent.type == SDL_WINDOWEVENT)
{
if(sdlEvent.window.event == SDL_WINDOWEVENT_MOVED)
{
// snip
}
}
}错误C2065:'SDL_WINDOWEVENT‘:未声明的标识符错误窗口:’C2039‘:不是'SDL_Event’sdl_events.h(227)的成员:请参见'SDL_Event‘的声明错误C2228:'.event’的左侧必须具有类/结构/联合错误C2065:'SDL_WINDOWEVENT_MOVED‘:未声明的标识符
发布于 2012-04-12 00:49:20
我发现了我遇到的问题- Joachim和user1202136给了我线索
我弄错了我正在使用的SDL版本,这解释了为什么这些方法不存在。
https://stackoverflow.com/questions/10100611
复制相似问题