Bonjour,
Je travaille actuellement sur un petit projet pour tester diff�rentes mani�res de rendre un programme plus modulaire : plugins, scripts, �
Le programme en lui-m�me est plut�t simple : il s'agit d'un jeu de cartes (dans le style des cartes Magic). Chaque carte peut �tre soit une cr�ature, soit un sort. Si c'est un sort, elle dispose d'une seule action (le sort en question). Si c'est une cr�ature, elle dispose de plusieurs (mais le nombre est d�fini). De plus, chaque carte dispose de certaines propri�t�s communes telles que le nom, description, niveau, �
Je cherche donc � impl�menter chaque carte sous forme de plugins, scripts en diff�rents langages, � afin d'avoir quelque chose le plus modulaire possible. Voil� ma classe Carte, toute simple :
Chaque m�thode est d�finie vide dans le cpp, sauf les accesseurs, toutes les cartes n'ayant pas besoin de r�impl�menter chacune des actions. Ces m�thodes sont appel�es automatiquement par le reste du programme.
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 class Carte { public: enum Type { Creature, Sort, Indefini, }; Carte(); virtual ~Carte(); virtual void debutTour(); virtual void invocation(); virtual void mort(); virtual int niveau() const; virtual int pv() const; virtual int pvMax() const; virtual std::string nom() const; private: int m_niveau; int m_pv; int m_pvMax; Type m_type; std::string m_nom; Joueur* m_prop; Joueur* m_adversaire; };
J'ai commenc� deux �chargeurs� de cartes : un sous la forme de plugins (en C++), qui avance bien et ne me pose pas de probl�me particulier. Le second consiste � charger un script lua d�finissant une carte. Dans un premier temps, je cherche � simplement d�finir les propri�t�s �basiques�, et non les actions. J'�tais parti sur l'exemple pr�sent� ici. J'arrive � faire dans un script lua une classe qui d�rive de Carte, et y appeler des m�thodes� Mais c'est l� que je me rends compte d'un gros soucis sur mon raisonnement : je n'ai aucun moyen de r�cup�rer cette carte dans mon code C++ (du moins, je n'en ai pas trouv�).
Et l�, je s�che� Je ne vois pas comment d�finir une classe en lua, qui contienne les m�mes propri�t�s qu'une classe C++, et la r�cup�rer en C++.
Si quelqu'un � la moindre piste, je suis preneur !
Merci.
Partager