salut tout le monde je suis en train de faire un tetris avec sdl et c++ .
j'ai crée pour le moment une classe cube et une classe forme dans la quelle j'ai crée un vector <cube> (puisque chaque piece est formée de 4 cube)
apres pour chaque fonction membre de la clsse forme je fais une boucle pour appeler les fonction menbre des 4 cube .
voila l'exemple de la fonction dep_bas dans forme:
et voila dep_bas dans cube:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void Forme::dep_bas(int carte[][12], SDL_Rect position) { for(int i=0;i<4;i++) m_cube[i].dep_bas(carte,&position); }
voila je precise que j'utilise le tableau carte pour detreminer chque position de carre dans la figure du jeu .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void Cube::dep_bas(int carte[][12], SDL_Rect *posi) { if(carte[posi->x][posi->y + 1 ] != 0 || posi->y == 12) m_mov_valid = false; else posi->y++; }
la compilation se fait normalemnt : aucune erreur .
mais lors de l'execution le programme se plante et me sort cette erreur
Exception non gérée à 0x00411b86 dans Tetris.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00089518.
et on m'indique cette ligne dans la fonction dep_bas de cube:
je ne vois l'origine de cette violation d'accés !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(carte[posi->x][posi->y + 1 ] != 0 || posi->y == 12)
merci pour votre lecture
Partager