Изучаю SDL2, но не могу понять как сделать так, что бы нажатие клавиши обрабатывалось один раз, т.е. пока кнопку не отожмешь и заного не нажмешь действие не повториться.
int keys[SDL_NUM_SCANCODES];
int main(int argc, char *argv[]){
    for (int i = 0; i < SDL_NUM_SCANCODES; i++){
        keys[i] = 0;
    }
	*******************
	while(run){
        CheckEvent(run, xrf, yrf);
        if (keys[SDL_SCANCODE_ESCAPE]) run = false;
        if (keys[SDL_SCANCODE_W]) gty += 0.01;
        if (keys[SDL_SCANCODE_A]) gtx -= 0.01;
        if (keys[SDL_SCANCODE_S]) gty -= 0.01;
        if (keys[SDL_SCANCODE_D]) gtx += 0.01;
        if (keys[SDL_SCANCODE_KP_PLUS]) gtz += 0.02;
        if (keys[SDL_SCANCODE_KP_MINUS]) gtz -= 0.02;
        if (keys[SDL_SCANCODE_R] && keys[SDL_SCANCODE_LSHIFT]) {
            gtx = 0, gty = 0, gtz = -2.0;
        }
		*******************
	}
	*******************
}
void CheckEvent(bool &run, float &xrf, float &yrf){
    SDL_Event event;
    while ( SDL_PollEvent(&event) ){
        switch(event.type){
            case SDL_KEYDOWN:{
                keys[event.key.keysym.scancode] = 1;
                break;
            }
            case SDL_KEYUP:{
                keys[event.key.keysym.scancode] = 0;
                break;
            }
        }
    }


