我在应用程序内部编写了一些基本导航,但之后它没有用,所以我减少了 他们到这个
void CSystem::controls()
{
switch (mainEvent->type)
{
case SDL_KEYDOWN:
switch (mainEvent->key.keysym.sym)
{
case SDLK_a:
cout << "JKANAJIDJAIJIHVUIRBYVHRU" << endl;
break;
}
break;
case SDL_KEYUP:
switch (mainEvent->key.keysym.sym)
{
case SDLK_a:
cout << "removed A" << endl;
break;
}
break;
}
}
我看到了这个问题,但我想不出任何其他解决方法,它读取我的KeyUp事件,但它不会读取我的KeyDown事件,我试图复制此代码并将其粘贴到我的游戏中,它有效。
我的大脑问题是什么问题,我检查了mainEvent,这只是通常的
SDL_Event* mainEvent = new SDL_CreateEvent();
我无法感觉到它有什么问题......这是一个错误还是什么?我一直试图因为这个小小的挫折而抓挠整个应用程序。
答案 0 :(得分:3)
您需要使用SDL_PollEvent(mainEvent)。告诉我它是否有效:)
void CSystem::controls()
{
while (SDL_PollEvent(mainEvent))
{
switch (mainEvent->type)
{
case SDL_KEYDOWN:
switch (mainEvent->key.keysym.sym)
{
case SDLK_a:
cout << "JKANAJIDJAIJIHVUIRBYVHRU" << endl;
break;
}
break;
case SDL_KEYUP:
switch (mainEvent->key.keysym.sym)
{
case SDLK_a:
cout << "removed A" << endl;
break;
}
break;
}
}
}