Я использую это в своем основном цикле:
if (SDL_WaitEvent(&event)) {
switch (event.type) {
case SDL_MOUSEBUTTONDOWN:
mainClicker(event.button.x, event.button.y);
break;
..... etc
Все отлично работает, но:
В «экране 1» пользователь делает вещи и нажимает кнопку. Затем приложение выполняет свою работу и показывает экран результатов с другими кнопками. Проблема заключается в том, что если вы случайно нажмете до полного отображения экрана результатов (2-5 секунд - с помощью SDL_Delay), MOUSEBUTTONDOWN будет сохранен (кэширован), а затем немедленно использован на экране 2. Так что, если вам «повезло», Вы можете нажать некоторые кнопки screen2 даже до того, как они отобразятся.
Есть ли способ очистки очереди событий SDL (не уверен, как она на самом деле называется)?
Спасибо.