bonjours a tous
j'ai un petit soucis avec sdl et les classes en C++
voila un exemple de mon code tres simple
le main :
la seule classe pour le momment :
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 #include <iostream> #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include <SDL/SDL_ttf.h> #include "menu.cpp" using namespace std; int main(){ //declaration des variables SDL_Surface *ecran = NULL; Menu menu; //initialisation SDL if(SDL_Init(SDL_INIT_VIDEO)==-1){ cerr<<"Erreur initialisation sdl"<<endl; exit(EXIT_FAILURE); } //initialisation TTF if(TTF_Init()==-1){ cerr<<"Erreur initialisation de ttf"<<endl; exit(EXIT_FAILURE); } //ouverture d'une fenetre SDL ecran = SDL_SetVideoMode( 800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF ); if (ecran == NULL){ cerr<< "Impossible de charger le mode vidéo"<<endl; exit(EXIT_FAILURE); } SDL_WM_SetCaption(" othello" , NULL ); menu=new Menu(ecran); SDL_Delay(10000); //fermeture de SDL et TTF TTF_Quit(); SDL_Quit(); }
et mon makefile :
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 #include <iostream> #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include <SDL/SDL_ttf.h> using namespace std; class Menu{ //variables SDL_Surface *ecran=NULL, *texteIntro=NULL; TTF_Font *policeIntro=NULL; public: Menu(SDL_Surface *ecran); ~Menu(); }; //constructeur Menu::Menu(SDL_Surface *ecran){ this->ecran=ecran; } //destructeur Menu::~Menu(){ SDL_FreeSurface(texte); TTF_CloseFont(police); }
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 SOURCES = main.cpp OBJECTS = $(SOURCES:.cpp=.o) TARGET = othello LIBS = $(shell sdl-config --libs) -lSDL_image -lSDL_ttf -lGL -lGLU all: $(OBJECTS) g++ $(LIBS) -o $(TARGET) $(OBJECTS) %o: %cpp g++ -o $@ -c $< x: all ./$(TARGET) clean: rm -rf $(OBJECTS) superclean : clean rm -rf $(TARGET)
alors avec tout ca j'ai un probleme de compilation au niveau des variables de la classe menu mon compilo me pale d'erreur ISO C++ fofbids initialization of member ... making <<...>> static ( les ... c'est les noms des variables et il me le met pour chaque variables )
mon but etant de developper des classes dans lesquelles je ferais passer l'ecran pour pouvoir l'effacer le metre à jour etc ... c'est donc assez ennuyeux et comme je ne suis pas un pro de la prog objet c++ je fais donc appelle a vous.
Comment faire pour declarer mes pointeurs SDL_Surface corectement dans mes classes et les faire passer d'une classe à l'autre par les constructeurs ?
merci d'avance
Partager