Bonjour
Je suis en train de coder mon propre tétris et je suis face à un drôle de problème.
Lorsque le bloc arrive, il tombe normalement:
Mais lorsqu'il a touché le "sol", une copie de ce bloc se place au milieu du jeu.
(Je pense que le bloc est placé en Y avec les coordonnées de X).
Voici une petite image montrant le problème:
(Le carré du haut est l'intrus).
Voici le code utilisé pour générer les coordonnées du bloc:
Voici le code qui colle les images à l'écran:
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 case 2: //Case 2 == CARRE /* pos est de type SDL_Rect et est un tableau de 4 cases. Il contient les coordonnées du bloc en train de tomber. */ case 2: //Carré if(carte[pos[2].x][pos[2].y+1] == 0 && carte[pos[3].x][pos[3].y+1] == 0 && (pos[2].y+1) < NB_BLOCS_H){ for(int i=0;i<4;i++){ pos[i].y++; } } if(pos[2].y+1 == NB_BLOCS_H || carte[pos[2].x][pos[2].y+1] != 0 || carte[pos[3].x][pos[3].y+1] != 0){ carte[x_1][y_1] = 4; carte[pos[1].x][pos[1].y] = 4; carte[pos[2].x][pos[2].y] = 4; carte[pos[3].x][pos[3].y] = 4; pos[0].x = -1; pos[0].y = -1; pos[1].x = -1; pos[1].y = -1; pos[2].x = -1; pos[2].y = -1; pos[3].x = -1; pos[3].y = -1; etat = true; } break;
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 //Blittage du décor for(int i=0;i<NB_BLOCS_L;i++){ for(int j=0;j<NB_BLOCS_H;j++){ position.x = i*TAILLE_BLOC; position.y = j*TAILLE_BLOC; switch(carte[i][j]){ case 0: SDL_BlitSurface(vide, NULL, ecran, &position); break; case 1://Ligne SDL_BlitSurface(jaune, NULL, ecran, &position); break; case 2://Bloc SDL_BlitSurface(rouge, NULL, ecran, &position); break; //Pour l'instant, seul 2 "case" sont faits. } //Blittage du bloc en cours de descente for(int alpha=0;alpha<4;alpha++){ if(pos_piece[alpha].x == i && pos_piece[alpha].y == j){ position.x = i*TAILLE_BLOC; position.y = j*TAILLE_BLOC; SDL_BlitSurface(jaune, NULL, ecran, &position); } }//Fin du "for" } }
Ou est le problème?
Merci d'avance.
Partager