Изучаю 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;
}
}
}