bonjour tout le monde
Voilà, j'ai aucune erreur lors de la compilation mais à l'execution mon programme me retourne une erreur et impossible de voir ce que c'est, j'ai essayé de debugué il me dit pas grand chose, pouvez vous m'aider svp ?
main.cpp
map.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Map map; map.chargementTiles(); map.aleatoire(); ... map.affichage(); SDL_Flip(ecran); } SDL_Quit(); return EXIT_SUCCESS; }
map.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 #include "map.h" Map::Map() { chipset = IMG_Load("chips.png"); width = WIDTH; height = HEIGHT; nb_tile_w = width/TILE_W; nb_tile_h = height/TILE_H; } Map::~Map() { SDL_FreeSurface(chipset); } void Map::chargementTiles() { int x=0, y=0; bool ok = true; nb_tile = (chipset->w/TILE_W)*(chipset->h/TILE_H); for(int i = 0; i<nb_tile;i++) { tiles[i].setX(x); tiles[i].setY(y); tiles[i].setTravers(ok); tiles[i].setId(i); x+=TILE_W; if(x>(chipset->w-TILE_W)) { x=0; y+=TILE_H; } } } void Map::aleatoire() { srand(time(NULL)); for(int i=0; i<nb_tile_h; i++) { for(int j=0; j<nb_tile_w; j++) { map[i][j] = rand()%nb_tile; } } } void Map::affichage() { SDL_Rect src, dst; int x=0,y=0; for(int i=0; i<nb_tile_h;i++) { for(int j=0; j<nb_tile_w;j++) { src.x = tiles[map[i][j]].getX(); src.y = tiles[map[i][j]].getY(); dst.x = x; dst.y = y; SDL_BlitSurface(chipset,&src,SDL_GetVideoSurface(),&dst); x+=TILE_W; } x=0; y+=TILE_H; } }
ce que me dit le debugger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #ifndef MAP_HEADER #define MAP_HEADER #include "global.h" #include "tile.h" class Map { public: Map(); ~Map(); void chargementTiles(); void affichage(); void chargement(string map); void aleatoire(); private: SDL_Surface *chipset; vector <Tile> tiles; vector <vector<int> > map; unsigned int width; unsigned int height; unsigned int nb_tile; unsigned int nb_tile_w; unsigned int nb_tile_h; }; #endif
apparemment c'est un pointeur mais j'ai regardé et je ne vois vraimment rien, je désespère là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Selecting target: default Compiling: done Starting debugger: done Adding source dir: C:\Documents and Settings\blastmanu\Mes documents\biguels\ Adding file: SDLapp.exe Program received signal (SIGSEGV) Segmentation fault
Partager