Bonjour !

Je code actuellement un petit jeu dans lequel j'aimerai pouvoir "scripter" le comportement des ennemis. Je déclare mes classes comme suit avec luabind pour pouvoir utiliser les shared_ptr de boost.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
class_<Component, boost::shared_ptr<Component> >("Component")>
class_<ScriptComponent, Component, boost::shared_ptr<ScriptComponent> >("ScriptComponent")
			.def(constructor< >())

Lorsqu'il s'agit de récupérer des shared_ptr créés dans le code C++, de les modifier etc... tout marche bien. Le problème survient lorsque je crée un shared_ptr dans le code lua. En effet, le script marche bien jusqu'à la fermeture du script qui me bloque mon programme :"le programme blablabla a cessé de fonctionner..." (le problème survient dans le compteur des boost::shared_ptr il me semble...).

Le script est appelé par sa fonction "update" à chaque tour de boucle. Une fonction "init" est appelé après la création du script pour initialiser les variables à l'interieur de celui-ci, et le boost::shared_ptr<ScriptComponent> est créé comme ceci :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
scriptTest = ScriptComponent()

Quelqu'un a une idée d'où vient l'erreur et comment la résoudre ?

Merci d'avance !