Bonjour tout le monde,

Dans le cadre d'un projet scolaire je réalise un petit space shooter.
J'ai ma boucle du jeux de la sorte:
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
27
28
29
30
31
32
33
34
35
36
37
38
	while (!Done){
 
        SDL_WaitEvent (&event);
 
		switch (event.type){
			case SDL_QUIT:	Done = true;
							break;
			case SDL_KEYDOWN:
				switch (event.key.keysym.sym){
					case SDLK_ESCAPE: Done = true;
									 break;
					case SDLK_RIGHT: // move shooter right
                                     if (!Pause)
                                        Player->advance();
									 break;
					case SDLK_LEFT: // move shooter left
                                     if (!Pause)
                                        Player->goBack();
									 break;
					case SDLK_SPACE: // Shoot
                                     if (!Pause)
                                        Player->shoot();
									 break;
					case SDLK_p: Pause = ! Pause;
								 break;
					case SDLK_a:
                                if (speed < 80)
                                    speed += 5;
								 break;
					case SDLK_z:
                                if (speed > 5)
                                    speed -= 5;
								 break;
                    default: break;
				}
		}
 
	}
Maintenant le problème que j'ai c'est :
Lorsque par exemple la touche LEFT reste appuyé, mon avion bouge niquel, mais si je reste appuyé (donc en mouvement) et que je tire par exemple (SPACE) le shoot est bien effectué mais mon avion arrête de bouger et donc je dois relâcher la touche LEFT et la ré enfoncer pour continuer.

Y'aurait-il une solution classique à ce problème ?
Merci