Salut,
Lors d'un evenement, j'appelle une procédure nommée pause() cependant à l'appel de cette procédure mon programme plante.
Tout d'abord dans le programme principale je détermine des evenements au clavier:
Voila la procédure pause():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 while(continuer == 1) { SDL_PollEvent(&evenement); switch(evenement.type) { case SDL_QUIT: continuer = 0; break; case SDL_KEYDOWN: switch(evenement.key.keysym.sym) { case SDLK_ESCAPE: continuer = 0; break; [...] case SDLK_p: pause(); //Lorsque l'utilisateur appuie sur le touche 'p', la procédure pause est appelée break; } break; }
Donc mon programme tourne correctement et quand j'appuie sur la touche 'p' le programme se met en pause, par contre aprés quand je réappuie sur la touche 'p' sa plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 void pause() { int pause = 1; SDL_Event toucheP; //Déclaration d'un evenement while(pause == 1) { SDL_WaitEvent(&toucheP);//Tant qu'il n' y a pas d'evenement tu ne fais rien switch(toucheP.type) { case SDL_KEYDOWN: switch(toucheP.key.keysym.sym) { SDLK_p: pause = 0; //Si l'utilisateur appuie sur la touche 'p', pause reçoit 0 pour ne pas ré-entrer dans la boucle break; } break; } } }
L' IDE ne me renvoie aucun message d'erreur particulier.
Je pense que le probléme vient de ma procédure pause(), plus précisement lors de l'évenement mais je ne vois pas pourquoi ca ne marche pas.
En espérant que vous pouvez m'aider.
Cordialement Sieldev,
Partager