12.2.12 Récupérer les événements

Encore une fonction que vous avez déjà vu :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void PAppSdlOpenGl3::getEvent(SDL_Event* event){
	//on test d'abord les touches qui peuvent se répéter
	for (KeyStates::iterator it = p_keystatesRepeat.begin();it != p_keystatesRepeat.end();it++){
		//est-ce que la touche responsable de l'événement est celle du keystate ?
		if (event->key.keysym.sym == it->first){
			it->second = (event->motion.type == SDL_KEYDOWN); //true si enfoncé, false si relâché
			break; //la touche responsable de l'événement a été utilisée, on quitte le for
		}
	}
	//maintenant les touches qui ne se répètent pas
	for (KeyStates::iterator it = p_keystatesNoRepeat.begin();it != p_keystatesNoRepeat.end();it++){
		//est-ce que la touche responsable de l'événement est celle du keystate ?
		if (event->key.keysym.sym == it->first){
			it->second = (event->motion.type == SDL_KEYUP); //true si enfoncé, false si relâché
			break; //la touche responsable de l'événement a été utilisée, on quitte le for
		}
	}
}

Aller, c'est fini pour cette classe.