Skip to content
Snippets Groups Projects
Commit 07068bb0 authored by vautrin33u's avatar vautrin33u
Browse files

Erreur désallocation

parent 25ad633c
No related branches found
No related tags found
No related merge requests found
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -12,12 +12,12 @@ ...@@ -12,12 +12,12 @@
/** /**
* \brief Largeur de l'écran * \brief Largeur de l'écran
*/ */
#define SCREEN_WIDTH 800 #define SCREEN_WIDTH 80
/** /**
* \brief Hauteur de l'écran * \brief Hauteur de l'écran
*/ */
#define SCREEN_HEIGHT 600 #define SCREEN_HEIGHT 60
/** /**
* \brief Titre * \brief Titre
......
...@@ -70,7 +70,7 @@ char** lire_fichier (const char* nomFichier){ //malfonctionne ...@@ -70,7 +70,7 @@ char** lire_fichier (const char* nomFichier){ //malfonctionne
int ligne = 0; int ligne = 0;
int colonne = 0; int colonne = 0;
taille_fichier(nomFichier, &ligne, &colonne); taille_fichier(nomFichier, &ligne, &colonne);
printf("\n Taille ligne: %d | colonne : %d \n", ligne, colonne); //printf("\n Taille ligne: %d | colonne : %d \n", ligne, colonne);
char** tab = allouer_tab_2D(colonne, ligne);//inversion ligne char** tab = allouer_tab_2D(colonne, ligne);//inversion ligne
for (int i=0; i<ligne; i++){ for (int i=0; i<ligne; i++){
......
...@@ -17,11 +17,10 @@ void init_data(world_t * world){ //faux ...@@ -17,11 +17,10 @@ void init_data(world_t * world){ //faux
world->attente = 0; world->attente = 0;
//Initialise le sprite du joueur en haut à gauche de l'écran, en état 0 //Initialise le sprite du joueur en haut à gauche de l'écran, en état 0
//init_sprite(&world->joueur, SCREEN_WIDTH*0.1, SCREEN_HEIGHT*0.1, SIZE_JOUEUR, SIZE_JOUEUR, SIZE_JOUEUR/2, 0); init_sprite(&world->joueur, 'J', SCREEN_WIDTH*0.1, SCREEN_HEIGHT*0.1, SIZE_JOUEUR, SIZE_JOUEUR, SIZE_JOUEUR/2, 0);
//Charge la carte //Charge la carte
world->level = init_map(); world->map = init_map();
world-> map = world->level;
/* /*
...@@ -143,7 +142,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){ ...@@ -143,7 +142,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){
switch (return_state(sprite)){ switch (return_state(sprite)){
case 0: case 0:
//déplace vers le bas //déplace vers le bas
sprite->y += sprite->v;
if (world->map[sprite->y + SIZE_JOUEUR][sprite->x] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x + SIZE_JOUEUR] != ' '){ if (world->map[sprite->y + SIZE_JOUEUR][sprite->x] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x + SIZE_JOUEUR] != ' '){
//Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit //Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit
for (int y= sprite->y; y<SIZE_JOUEUR; y++){ for (int y= sprite->y; y<SIZE_JOUEUR; y++){
...@@ -156,7 +154,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){ ...@@ -156,7 +154,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){
break; break;
case 1: case 1:
//déplace vers le haut //déplace vers le haut
sprite->y -= sprite->v;
if (world->map[sprite->y][sprite->x] != ' ' || world->map[sprite->y][sprite->x + SIZE_JOUEUR] != ' '){ if (world->map[sprite->y][sprite->x] != ' ' || world->map[sprite->y][sprite->x + SIZE_JOUEUR] != ' '){
//Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit //Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit
for (int y= sprite->y; y<SIZE_JOUEUR; y++){ for (int y= sprite->y; y<SIZE_JOUEUR; y++){
...@@ -169,7 +166,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){ ...@@ -169,7 +166,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){
break; break;
case 2: case 2:
//déplace vers la droite //déplace vers la droite
sprite->x += sprite->v;
if (world->map[sprite->y][sprite->x + SIZE_JOUEUR] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x + SIZE_JOUEUR] != ' '){ if (world->map[sprite->y][sprite->x + SIZE_JOUEUR] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x + SIZE_JOUEUR] != ' '){
//Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit //Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit
for (int x= sprite->x; x<SIZE_JOUEUR; x++){ for (int x= sprite->x; x<SIZE_JOUEUR; x++){
...@@ -182,7 +178,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){ ...@@ -182,7 +178,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){
break; break;
case 3: case 3:
//déplace vers la gauche //déplace vers la gauche
sprite->x -= sprite->v;
if (world->map[sprite->y][sprite->x] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x] != ' '){ if (world->map[sprite->y][sprite->x] != ' ' || world->map[sprite->y + SIZE_JOUEUR][sprite->x] != ' '){
//Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit //Compter le nombre d'espace avant d'arriver au bloc, et placer le joueur contre le bloc interdit
for (int x= sprite->x; x<SIZE_JOUEUR; x++){ for (int x= sprite->x; x<SIZE_JOUEUR; x++){
...@@ -197,8 +192,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){ ...@@ -197,8 +192,6 @@ void deplace_sprite (sprite_t *sprite, world_t *world){
limites_externes(sprite, world); limites_externes(sprite, world);
place_sprite_on_map(sprite, world); place_sprite_on_map(sprite, world);
} }
void gestion_events(SDL_Event *event, world_t *world){ void gestion_events(SDL_Event *event, world_t *world){
...@@ -214,15 +207,20 @@ void gestion_events(SDL_Event *event, world_t *world){ ...@@ -214,15 +207,20 @@ void gestion_events(SDL_Event *event, world_t *world){
//Déplacement du joueur //Déplacement du joueur
case SDLK_z: case SDLK_z:
set_haut(&world->joueur); set_haut(&world->joueur);
world->joueur.y -= world->joueur.v;
break; break;
case SDLK_s: case SDLK_s:
set_bas(&world->joueur); set_bas(&world->joueur);
world->joueur.y += world->joueur.v;
break; break;
case SDLK_d: case SDLK_d:
set_droite(&world->joueur); set_droite(&world->joueur);
world->joueur.x += world->joueur.v;
break; break;
case SDLK_q: case SDLK_q:
set_gauche(&world->joueur); set_gauche(&world->joueur);
world->joueur.x -= world->joueur.v;
break; break;
//case SDLK_SPACE: //case SDLK_SPACE:
......
...@@ -46,7 +46,6 @@ struct world_s{ ...@@ -46,7 +46,6 @@ struct world_s{
int compteur_plats; /*!< Nombre d'ennemis étant sorti de l'écran */ int compteur_plats; /*!< Nombre d'ennemis étant sorti de l'écran */
int attente; /*!< Compte le nombre de tours avant la fin de la partie*/ int attente; /*!< Compte le nombre de tours avant la fin de la partie*/
char** map; /*!< tableau de caractère correspondant à l'état de la map actuel */ char** map; /*!< tableau de caractère correspondant à l'état de la map actuel */
char** level; /*!< tableau de car correspondant à l'architecture du niveau */
}; };
/** /**
......
...@@ -57,9 +57,8 @@ while (estFini(&world)==0){ ...@@ -57,9 +57,8 @@ while (estFini(&world)==0){
SDL_RenderPresent(ecran); // Récupère les infos actualisés de render et les affiches SDL_RenderPresent(ecran); // Récupère les infos actualisés de render et les affiches
} }
SDL_Delay(1500);
SDL_DestroyRenderer(ecran);
SDL_Delay(150); SDL_Delay(150);
SDL_DestroyRenderer(ecran);
SDL_DestroyWindow(windows); SDL_DestroyWindow(windows);
SDL_Quit(); SDL_Quit();
} }
\ No newline at end of file
...@@ -66,17 +66,7 @@ void test_lire_fichier(){ ...@@ -66,17 +66,7 @@ void test_lire_fichier(){
void test_generer_map(){ void test_generer_map(){
char ** tab = init_map(); char ** tab = init_map();
desallouer_tab_2D(tab, SCREEN_HEIGHT/10); desallouer_tab_2D(tab, SCREEN_HEIGHT);
//afficher_tab_2D(tab, SCREEN_HEIGHT/10, SCREEN_WIDTH/10);
}
void test_handle_collision(){
char ** source = init_map();
int n = SCREEN_HEIGHT/10;
int m = SCREEN_WIDTH/10;
desallouer_tab_2D(source, SCREEN_WIDTH/10);
} }
void test_lecture_map(){ void test_lecture_map(){
...@@ -86,7 +76,13 @@ void test_lecture_map(){ ...@@ -86,7 +76,13 @@ void test_lecture_map(){
taille_fichier("Ressources/map.txt", &n, &m); taille_fichier("Ressources/map.txt", &n, &m);
printf("Taille: %d / %d \n", n,m); printf("Taille: %d / %d \n", n,m);
//afficher_tab_2D(source, n, m); //afficher_tab_2D(source, n, m);
desallouer_tab_2D(source, n); //pose pb - plus mtn x) desallouer_tab_2D(source, n); //pose pb
}
void test_limite(){
world_t world;
init_data(&world);
afficher_tab_2D(world.map, SCREEN_HEIGHT, SCREEN_WIDTH);
} }
...@@ -99,5 +95,6 @@ test_genere_fichiers(); ...@@ -99,5 +95,6 @@ test_genere_fichiers();
test_lire_fichier(); test_lire_fichier();
test_generer_map(); test_generer_map();
test_lecture_map(); test_lecture_map();
test_limite();
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment