SDL_KEYDOWN e reconhecimento de chave não estão funcionando corretamente

No meu projeto, estou tendo problemas para obter uma instrução switch simples para trabalhar com entrada SDL. Aqui está o exemplo:

SDL_Event event;

SDL_PollEvent(&event);


if (event.type == SDL_KEYDOWN)
{

    switch (event.key.keysym.sym)
    {
    case SDLK_a: m_x -= 30;
            break;
    case SDLK_d: m_x += 30;
            break;
    case SDLK_w: m_y -= 30;
            break;
    case SDLK_s: m_y += 30;
            break;
    }
}

Quando executo isso, primeiro parece que SDL_KEYDOWN não está sendo reconhecido. Nem são meus casos. Então mudei o código para:

SDL_Event event;

SDL_PollEvent(&event);


if (event.type == 771)
{

    switch (event.key.keysym.sym)
    {
    case SDLK_a: m_x -= 30;
            break;
    case SDLK_d: m_x += 30;
            break;
    case SDLK_w: m_y -= 30;
            break;
    case SDLK_s: m_y += 30;
            break;
    default: m_y += 1;
    }
}

Isso faz com que o caso padrão seja executado quando eu pressiono ou pressiono qualquer tecla, então meu objeto se move de acordo com m_y + = 1. Se eu remover o caso padrão e tentar pressionar w, a, s ou d, nada acontece. Se eu mantiver m_y + = 1, mas usar SDL_KEYDOWN em vez de 771, nada acontece. (Eu obtive o código 771 imprimindo o event.type sempre que uma tecla está sendo pressionada).

questionAnswers(1)

yourAnswerToTheQuestion