[Oups je viens de me rendre compte que j'ai posté mon sujet au mauvais endroit, désolé]
Bonjour,
pour mon petit jeu créé en C, je fais des fichiers .map (décors) ou l'on retrouve une suite de nombres, séparés par un espace. (exemple de fichier .map ici)
J'ouvre mon fichier :
Ensuite je récupère le contenu de chaque ligne (= correspond à chaque layer (couche de tiles))Code:
1
2
3
4
5 FILE *fichier = NULL; fichier = fopen("level-o.map", "r"); if (fichier == NULL){ printf("Can't open level-o.map"); return 0;}
Je voudrais ensuite récupérer chaque nombre (qui sont, je le rappelle, séparés par un espace) dans un char :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 char ligne[NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1]; char contenuLayers[NB_LAYERS][NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1]; fgets (ligne, sizeof ligne, fichier); strcpy(contenuLayers[0], ligne); fgets (ligne, sizeof ligne, fichier); strcpy(contenuLayers[1], ligne); fgets (ligne, sizeof ligne, fichier); strcpy(contenuLayers[2], ligne); fgets (ligne, sizeof ligne, fichier); strcpy(contenuLayers[3], ligne);
Ensuite, j'ai essayé de voir si ma boucle fonctionnait bien :Code:
1
2
3
4
5
6
7
8
9
10
11
12 for(int layer=0; layer < NB_LAYERS; layer++) { for (int i = 0 ; i < NB_BLOCS_HAUTEUR ; i++) { for (int j = 0 ; j < NB_BLOCS_LARGEUR ; j++) { if (contenuLayers[layer][(i * NB_BLOCS_LARGEUR) + j] == j) map[j][i][layer] = j; } } }
À la console :Code:printf("%s", map[0][0][0]);
J'ai essayé plusieurs "combinaisons" (map[1][0][0], map[1][1][0], etc...), pour toujours avoir le même résultat... Quelle est la solution ?Code:(null)