SDL 이벤트 큐의 이벤트를 처리해야하는 일반 함수가 있습니다. 지금까지,이 함수는 다음과 같습니다SDL_Event.type은 폴링 후 항상 비어 있습니다.
int eventhandler(void* args){
cout << "Eventhandler started.\n";
while (!quit){
while (SDL_PollEvent(&event)){
cout << "Got event to handle: " << event.type << "\n";
switch (event.type){
SDL_KEYDOWN:
keyDownHandler(event.key.keysym.sym);
break;
default:
break;
}
}
}
}
을 그러나, 나는이 기능을 테스트 할 때, 나는 사건의 전체 무리를 얻을 수 있지만, 아무도 그들의는 유형을 갖고있는 것 같다 않습니다. 0이나 아무것도 인쇄하지 않습니다. 아무 것도 없습니다. 아무 키나 누르면 다음과 같이 출력됩니다.
Got event to handle:
그 밖의 것은 없습니다. 모든 자습서와 SDL 문서에서는 이와 같은 이벤트를 처리해야한다고 말하지만 작동하지 않습니다. 다른 사람이이 문제 또는 해결책을 가지고 있습니까?
그런데 eventhandler는 SDL_Thread에서 실행되지만, 나는 그것이 문제라고 생각하지 않습니다.
'SDL_KEYDOWN :'은 (는)'case SDL_KEYDOWN :'이어야합니다. –
@ gf : 네가 맞아, 고마워. 이상하게도 그걸 해결했습니다. event.type은 여전히 비어 있지만 * 어떻게 든 * 작동합니다. 감사. –
저는 MS Visual C++을 통해 컴파일하지는 않지만 "이벤트"사용에 대해서는주의해야한다는 것을 알고 있습니다. VC++의 키워드입니다. 호환성을 위해 "e"또는 그 외의 다른 언어로 변경하려고합니다. 언젠가 VC++을 사용하기를 원할 수도 있고, 다른 누군가가 그것을 통해 작품을보고 싶어 할 수도 있습니다. 그것은 결국 매우 일반적으로 사용되는 컴파일러입니다. – Zoomulator