caps lock | En me basant sur le tutoriel de Mateo21 sur le siteduzero.com qui consiste à la réalisation d'un jeu en C, je ne comprends pas dans ce code:
Code :
- while (continuer)
- {
- SDL_WaitEvent(&event);
- switch(event.type)
- {
- case SDL_QUIT:
- continuer = 0;
- break;
- case SDL_KEYDOWN:
- switch(event.key.keysym.sym)
- {
- case SDLK_ESCAPE:
- continuer = 0;
- break;
- case SDLK_UP:
- marioActuel = mario[HAUT];
- deplacerJoueur(carte, &positionJoueur, HAUT);
- break;
- case SDLK_DOWN:
- marioActuel = mario[BAS];
- deplacerJoueur(carte, &positionJoueur, BAS);
- break;
- case SDLK_RIGHT:
- marioActuel = mario[DROITE];
- deplacerJoueur(carte, &positionJoueur, DROITE);
- break;
- case SDLK_LEFT:
- marioActuel = mario[GAUCHE];
- deplacerJoueur(carte, &positionJoueur, GAUCHE);
- break;
- }
- break;
- }
- // Effacement de l'écran
- SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
- // Placement des objets à l'écran
- objectifsRestants = 0;
- for (i = 0 ; i < NB_BLOCS_LARGEUR ; i++)
- {
- for (j = 0 ; j < NB_BLOCS_HAUTEUR ; j++)
- {
- position.x = i * TAILLE_BLOC;
- position.y = j * TAILLE_BLOC;
- switch(carte[i][j])
- {
- case MUR:
- SDL_BlitSurface(mur, NULL, ecran, &position);
- break;
- case CAISSE:
- SDL_BlitSurface(caisse, NULL, ecran, &position);
- break;
- case CAISSE_OK:
- SDL_BlitSurface(caisseOK, NULL, ecran, &position);
- break;
- case OBJECTIF:
- SDL_BlitSurface(objectif, NULL, ecran, &position);
- objectifsRestants = 1;
- break;
- }
- }
- }
- // Si on n'a trouvé aucun objectif sur la carte, c'est qu'on a gagné
- if (!objectifsRestants)
- continuer = 0;
- // On place le joueur à la bonne position
- position.x = positionJoueur.x * TAILLE_BLOC;
- position.y = positionJoueur.y * TAILLE_BLOC;
- SDL_BlitSurface(marioActuel, NULL, ecran, &position);
- SDL_Flip(ecran);
- }
|
- Ce qui fait qu'à chaque tour de la boucle "while" le tableau ne soit pas réinitialiser à son état d'origine. En gros, pourquoi si je bouge une caisse, elle restera là où je l'ai laissé à la prochaine boucle du "while" ?
|