Bonjour � tous ceux qui m'aideront ou auront essay� de le faire, ainsi qu'� toute la communaut� !
Je ne tourne pas autour du pot et vous explique de suite mon probl�me.
Je dois d�velopper un jeu en C++ pour un projet � l'�cole, mais je bloque sur un soucis qui, je pense, vient de mes d�clarations de fonctions, de l'initialisation de mes variables et de l'utilisation des deuxi�mes en tant que param�tres des premi�res. Pour info je travaille avec VisualC++ 2010 et suis sous Windows 7.
J'ai donc cr�� une classe AffichageManager qui lance tel ou tel affichage (accueil, menu, jeu...) selon la touche enfonc�e, une classe EventManager qui "�coute" les touches appuy�es et enfin une classe Fenetre qui est m�re de PageAccueil et PageMenu.
Voici la fa�on dont j'ai pens� le d�veloppement du jeu :
D'abord je cr�e une fonction LancementAffichage() qui, apr�s avoir instanci� un objet de chaque classe, ex�cute la cr�ation de la fen�tre gr�ce au constructeur de la classe Fenetre.
Ensuite l'instance de Fenetre ex�cute l'affichage de l'accueil (LancementAccueil(PageAccueil pageAccueil)).
Enfin l'instance de EventManager attend que l'utilisateur appuie sur une touche pour effectuer telle ou telle action.
Mon probl�me se trouve au niveau de la construction des liens puisque j'ai un message d'erreur LNK2019 me signalant"unresolved external symbol "public: void __thiscall EventManager::KeyEvent(class PageAccueil,class PageMenu,class AudioManager)" (?KeyEvent@EventManager@@QAEXVPageAccueil@@VPageMenu@@VAudioManager@@@Z) referenced in function "public: void __thiscall AffichageManager::LancementAffichage(void)" (?LancementAffichage@AffichageManager@@QAEXXZ)
Voici le code de AffichageManager et EventManager, l� o� je pense se situe l'erreur, mais peut-�tre je me trompe...
EventManager :
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 #include "StdAfx.h" #include "AffichageManager.h" #include "Fenetre.h" #include "PageAccueil.h" #include "PageMenu.h" #include "EventManager.h" #include "AudioManager.h" AffichageManager::AffichageManager(void) { } AffichageManager::~AffichageManager(void) { } void AffichageManager::LancementAffichage() { Fenetre *f = new Fenetre(800, 600, 32, SDL_HWSURFACE); AudioManager aM = AudioManager(); PageAccueil pA = PageAccueil(); PageMenu pM = PageMenu(); EventManager *eM = new EventManager(); f->LancementAccueil(pA); aM.PlayMusic("menu"); eM->KeyEvent(pA, pM, aM); }
Je ne mets pas les ".h" car les fonctions sont d�clar�es comme indiqu�es lors de leur d�finitions.
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 #include "StdAfx.h" #include "EventManager.h" EventManager::EventManager(void) { } EventManager::~EventManager(void) { } void KeyEvent(PageAccueil pageAccueil, PageMenu pageMenu, AudioManager audioManager) { int continuer = 1; SDL_Event evenement; while (continuer) { // On attend un évènement clavier et on switch selon la touche pressée SDL_WaitEvent(&evenement); switch(evenement.type) { case SDL_QUIT: continuer = 0; break; case SDL_KEYDOWN: switch(evenement.key.keysym.sym) { case SDLK_a: continuer = 0; break; case SDLK_s: audioManager.PauseSon(); break; case SDLK_RETURN: pageAccueil.Affichage(); break; case SDLK_ESCAPE: pageMenu.Affichage(); break; } break; } } }
Merci beaucoup pour toute l'aide que vous pourrez m'apporter,
Paicito
PS: post replac� car initialement mis dans la mauvaise rubrique du site...
Partager