tolua++:namespace导致的问题

在用cocos2d-x的时候,我们把自己的类和cocos2d-x的类混在一起,而是导出了一个独立的cpp文件。但是在pkg文件中没有注意处理cocos2d的namespace,导致了在lua脚本中,自定义类中获得的比如CCNode之类的对象无法访问成员函数。因为在cocos2d-x的pkg中,它是删除了namespace的,所以tolua++生成的代码是这样的:

 tolua_usertype(tolua_S,”CCNode”);

而在我的pkg文件中,由于没有处理namespace,生成的代码如下:

 tolua_usertype(tolua_S,”cocos::CCNode”);

这就导致了同一个类在lua脚本中被认为是两个不同的对象。

解决的方法很简单,去掉namespace即可。