Я написал некоторые основные навигации внутри приложения, но затем он не работал, поэтому я уменьшил их до этого
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();
Я не чувствую ничего плохого в этом... это ошибка или что-то еще? Я старался расчесывать все приложение только из-за этой незначительной неудачи.
Вам нужно использовать 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;
}
}
}