Пока вы не получите SDL_CONTROLLERBUTTONUP (для той же кнопки, конечно), вы можете считать кнопку нажатой.Затем для подсчета вы могли бы сделать что-то вроде этого (для одной кнопки):
bool that_button_pressed{false};
while(!quit_program) {
//Handle events on queue
while(SDL_PollEvent(&e)) {
// User requests quit
if(e.type == SDL_QUIT)
quit_program = true;
if (e.type == SDL_CONTROLLERBUTTONDOWN && e.button == a_button_of_your_choice) {
that_button_pressed = true;
}
if (e.type == SDL_CONTROLLERBUTTONUP && e.button == a_button_of_your_choice) {
that_button_pressed = false;
}
}
if (that_button_pressed) {
count++;
// Print or implement your logic
}
}
Конечно, этот счетчик также будет зависеть от времени вашего цикла.Здесь that_button_pressed будет представлять один из SDL_GameControllerButton .