diff --git a/image.c b/image.c index 69ee4ca7f4e116a07d4b80986b144c0a2bde8e6c..00db74cb5f84961e3d06407ab1cd1e528721e2fb 100644 --- a/image.c +++ b/image.c @@ -12,7 +12,8 @@ SDL_Texture* charger_image(const char* cheminFichier, SDL_Renderer* renderer, in return image; } -void afficher_niveau(int *tab, SDL_Renderer *renderer, SDL_Texture **spriteMap, int xCamera, int yCamera){ + +void afficher_niveau(char *tab, SDL_Renderer *renderer, SDL_Texture **spriteMap, int xCamera, int yCamera){ SDL_Rect destrect; destrect.h = 50; destrect.w = 50; @@ -21,11 +22,20 @@ void afficher_niveau(int *tab, SDL_Renderer *renderer, SDL_Texture **spriteMap, destrect.x = i * 50 - xCamera; destrect.y = j * 50 - yCamera; SDL_RenderCopy(renderer, spriteMap[0], NULL, &destrect); - for(int k = 1; k < 9; k++){ - if(tab[30*j+i] == k){ - SDL_RenderCopy(renderer, spriteMap[k], NULL, &destrect); - } + + switch(tab[30*j+i]){ + + case 'H': + SDL_RenderCopy(renderer, spriteMap[1], NULL, &destrect); + break; + case 'Q': + break; + case 'V': + SDL_RenderCopy(renderer, spriteMap[3], NULL, &destrect); + break; } + + } } return; diff --git a/image.h b/image.h index df42d8bb70cbe3a376bae15bd17fb296427ce92f..10b9a03303f1e7abd001c0b6d2505293bcdc8e01 100644 --- a/image.h +++ b/image.h @@ -2,4 +2,4 @@ #include <SDL2/SDL_image.h> SDL_Texture* charger_image(const char* fichier, SDL_Renderer* renderer, int r, int g, int b); -void afficher_niveau(int *tab, SDL_Renderer *renderer, SDL_Texture **spriteMap, int xCamera, int yCamera); +void afficher_niveau(char *tab, SDL_Renderer *renderer, SDL_Texture **spriteMap, int xCamera, int yCamera); diff --git a/listeR.c b/listeR.c index 4c3e022315a7cd9c96cbf51589f955de22c6a9de..61df5ca995f23381978f73b92390b89e30c9b5dd 100644 --- a/listeR.c +++ b/listeR.c @@ -1,4 +1,5 @@ #include "listeR.h" +#include <stdio.h> void cons_listeR(ListeR *L, SDL_Rect data){ @@ -10,73 +11,104 @@ void cons_listeR(ListeR *L, SDL_Rect data){ } -void charger_niveau(int *tab, ListeR *L){ - //on met toutes les case � 0 pour dire que tout est du sol (provisoire) - for(int j = 0; j < 30; j++){ - for(int i = 0; i < 30; i++){ - tab[30*j+i] = 0; - } - } +void charger_niveau(char *tab, ListeR *L){ - //ici lire fichier et remplacer les cases qu'il faut par 1-8 pour mettre des murs - //je mets �a en attendant pour afficher des murs sur le bord de la map - for(int j = 0; j < 30; j++){ - tab[30*j+0] = 3; - tab[30*j+29] = 4; - tab[30*0+j] = 1; - tab[30*29+j] = 2; + FILE* fichier = NULL; + fichier = fopen("map.txt", "r"); + int caractereActuel; + if (fichier != NULL){ + + for(int j = 0; j < 33; j++){ + + for(int i = 0; i < 31; i++){ + if(j < 31){ + + if(i==0){ + //caractereActuel = fgetc(fichier); + caractereActuel = fgetc(fichier); + char tmp = caractereActuel; + // caractereActuel = fgetc(fichier); + caractereActuel = tmp; + + + tab[30*j+i] = caractereActuel; + printf("%c", tab[30*j+i]); + } + + else{ + caractereActuel = fgetc(fichier); + tab[30*j+i] = caractereActuel; + printf("%c", tab[30*j+i]); + } + } + } + + } + + fclose(fichier); } - tab[30*0+0] = 5; - tab[30*0+29] = 6; - tab[30*29+0] = 7; - tab[30*29+29] = 8; //Remplir la liste de murs SDL_Rect rect; for(int j = 0; j < 30; j++){ for(int i = 0; i < 30; i++){ switch(tab[30*j+i]){ - case 0: + case 'S': + break; - case 1: + case 'H': rect.x = i * 50; rect.y = j * 50; rect.h = 25; rect.w = 50; cons_listeR(L, rect); + //tab[30*j+i] = 1; + break; + case 'V': + rect.x = i * 50; + rect.y = j * 50; + rect.h = 50; + rect.w = 25; + cons_listeR(L, rect); + //tab[30*j+i] = 3; break; - case 2: + /** + case '2': rect.x = i * 50; rect.y = j * 50 + 25; rect.h = 25; rect.w = 50; - cons_listeR(L, rect); + L = cons_listeR(L, rect); break; - case 3: + case '3': rect.x = i * 50; rect.y = j * 50; rect.h = 50; rect.w = 25; - cons_listeR(L, rect); + L = cons_listeR(L, rect); break; - case 4: + case '4': rect.x = i * 50 + 25; rect.y = j * 50; rect.h = 50; rect.w = 25; - cons_listeR(L, rect); + L = cons_listeR(L, rect); break; - case 5: - case 6: - case 7: - case 8: + case '5': + case '6': + case '7': + case '8': rect.x = i * 50; rect.y = j * 50; rect.h = 50; rect.w = 50; - cons_listeR(L, rect); + L = cons_listeR(L, rect); + break; + case '0': + break; + */ } } } diff --git a/listeR.h b/listeR.h index aab23b07c45e50531fef4568e6d2445a3e8cf02b..d0e7833b029d954e109f9b18c19d920727db0480 100644 --- a/listeR.h +++ b/listeR.h @@ -11,5 +11,5 @@ struct s_ListeR void cons_listeR(ListeR *L, SDL_Rect data); -void charger_niveau(int *tab, ListeR *L); +void charger_niveau(char *tab, ListeR *L); bool detecter_collision_murs(ListeR L, SDL_Rect rect, int xCamera, int yCamera); diff --git a/main.c b/main.c index 4a5888db2b598063e8f8fc851b80d16b32006f94..549fff6c15995e528627f0baca611d91dea9aed6 100644 --- a/main.c +++ b/main.c @@ -12,7 +12,8 @@ int main(int argc, char *argv[]) SDL_Texture *tmp, *balleSprite, *sprites[4], *spritesMap[9]; float mouseX, mouseY; int vitesse, tempsActuel, tempsPrecedent, tempsActuelTir, tempsActuelAnim, tempsPrecedentAnim, - xCamera, yCamera, dxCamera, dyCamera, map[30][30]; ; + xCamera, yCamera, dxCamera, dyCamera; + char map[32][30]; ; ListeB ballesTirees; ListeP persosListe; ListeR mursListe; @@ -73,6 +74,45 @@ int main(int argc, char *argv[]) tmp = charger_image("sprites/effets/blood/blood_hitv3.png", ecran, 0, 0, -1); sprites[3] = tmp; + /** + FILE* fichier = NULL; + fichier = fopen("map.txt", "r"); + int caractereActuel; + if (fichier != NULL){ + + for(int j = 0; j < 33; j++){ + + for(int i = 0; i < 31; i++){ + if(j < 31){ + + if(i==0){ + //caractereActuel = fgetc(fichier); + caractereActuel = fgetc(fichier); + char tmp = caractereActuel; + // caractereActuel = fgetc(fichier); + caractereActuel = tmp; + + + map[j][i] = caractereActuel; + printf("%c", map[j][i]); + } + + else{ + caractereActuel = fgetc(fichier); + map[j][i] = caractereActuel; + printf("%c", map[j][i]); + } + } + } + + } + + fclose(fichier); + } + */ + + + //Sons musique = NULL;