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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
SDL_Surface *randomMap (s_tileset *s_village, s_map *s_m_randomMap)
{
char caracter = 0;
srand((unsigned)time(NULL));
int i, j;
/*Ouverture du fichier*/
FILE *f_map = NULL;
f_map = fopen("MAP/1.map", "r");
if (f_map == NULL)
{
fprintf(stderr, "Erreur lors de la création du fichier 1.map");
exit(EXIT_FAILURE);
}
/*Coordonnée de la tuile qui va être blitée sur la map*/
SDL_Rect tileCoordMap;
tileCoordMap.x = 0;
tileCoordMap.x = 0;
tileCoordMap.w = TILE;
tileCoordMap.h = TILE;
/*Coordonnée de la tuile du tileset qui va être utilisée*/
SDL_Rect tileCoordTileset;
tileCoordTileset.x = randomNumber(0, s_village->numberTileX)*TILE;
tileCoordTileset.y = randomNumber(0, s_village->numberTileY)*TILE;
tileCoordTileset.w = TILE;
tileCoordTileset.h = TILE;
/*Initialisation de la map*/
s_m_randomMap->coord.x = 0;
s_m_randomMap->coord.y = 0;
s_m_randomMap->picture->h = W_HEIGHT;
s_m_randomMap->picture->w = W_WIDTH;
fscanf(f_map, "%d %d", &(s_m_randomMap->picture->w), &(s_m_randomMap->picture->h));//On lit la résolution de la map dans le fichier
s_m_randomMap->picture = SDL_CreateRGBSurface(SDL_HWSURFACE, s_m_randomMap->picture->w, s_m_randomMap->picture->h, 32, 0, 0, 0, 0);
/*Blitage des images les unes à la suite des autres*/
for(i=0; i<(s_m_randomMap->picture->h/TILE); i++)
{
for(j=0; j<(s_m_randomMap->picture->w/TILE); j++)
{
//fscanf(f_map, "%d %d", &(tileCoordTileset.x), &(tileCoordTileset.y));
tileCoordTileset.x = TILE*tileCoordTileset.x;
tileCoordTileset.y = TILE*tileCoordTileset.y;
//fprintf(stdout, "%ld %ld\n", tileCoordTileset.x, tileCoordTileset.y);
//tileCoordTileset.x = randomNumber(0, s_village->numberTileX)*TILE;
//tileCoordTileset.y = randomNumber(0, s_village->numberTileY)*TILE;
SDL_BlitSurface(s_village->picture, &tileCoordTileset, s_m_randomMap->picture, &tileCoordMap);
tileCoordMap.x += 32;
}
SDL_BlitSurface(s_village->picture, &tileCoordTileset, s_m_randomMap->picture, &tileCoordMap);
tileCoordMap.x = 0;
tileCoordMap.y += 32;
}
tileCoordMap.y = 0;
tileCoordMap.x = 0;
/*Fermeture du fichier*/
fclose(f_map);
return (s_m_randomMap->picture);
} |
Partager