Вот проблема, я написал цикл обработки событий для обнаружения событий нажатия клавиш и нажатия клавиш. Проблема, с которой я сталкиваюсь, состоит в том, что событие нажатия клавиши генерирует нажатие клавиши и событие нажатия клавиши, когда клавиша нажимается и удерживается. Я использую клавиши со стрелками для перемещения объекта, а затем, чтобы остановить движение, когда клавиша отпущена (keyup). Любая помощь поможет. Благодарю. =) * * Тысяча одна
Justin
P.S. Я бы опубликовал код, но не могу заставить его выглядеть правильно.
print(" SDL_Event event;
SDL_EnableKeyRepeat(0,0);
while(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT:
done = true;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym){
case SDLK_ESCAPE:
done = true;
break;
case SDLK_LEFT:
animate_x = -5;
cout << "left press\n";
break;
case SDLK_RIGHT:
animate_x = 5;
break;
case SDLK_UP:
animate_y = -5;
break;
case SDLK_DOWN:
animate_y = 5;
break;
default:
break;
}
break; -left out in original
case SDL_KEYUP:
switch(event.key.keysym.sym){
case SDLK_LEFT:
cout << "left up\n";
animate_x = 0;
break;
case SDLK_RIGHT:
animate_x = 0;
break;
case SDLK_UP:
animate_y = 0;
break;
case SDLK_DOWN:
animate_y = 0;
break;
default:
break;
}
break; -left out in original
}
}");
Пытаясь выяснить, как разместить код, я заметил, что в двух случаях пропустил значение по умолчанию. Код сейчас работает. Он продолжал изучать случаи и выполнять код, который соответствовал тому, что было в очереди. Дурак я. Спасибо за помощь. =)