SDLK недоумение - PullRequest
       29

SDLK недоумение

0 голосов
/ 23 марта 2012

Как работает SDLK_'anykey?В моей игре пуля должна быть выпущена, когда нажата кнопка Ctrl, но через точки останова и тестовые операторы печати я понял, что даже если я нажимаю «Ctrl» один раз, функция вызывается много раз.Это почему?И как мне этого избежать?

Ничего особенного - это случай переключения в основном цикле:

            case SDLK_p :
            s.origin(cat);
            break;   

, где s - объект, который вызывает функцию источника класса Shoot и передает ему кадр,Используя переменную count в функции origin, я теперь знаю, что эта функция вызывается столько раз, сколько секунд я удерживаю клавишу «p»!Как это предотвратить?

Ответы [ 2 ]

1 голос
/ 23 марта 2012
SDL_PollEvent(&event);

Вам необходимо проверить возвращаемое значение из SDL_PollEvent .Если это 0, нет ожидающих событий, и вы не должны пытаться обработать его.

0 голосов
/ 23 марта 2012

Согласно документации , вы должны добавить эту строку к инициализации SDL:

SDL_EnableKeyRepeat(0,0);
...