看【绑定自定义类至Lua】(二)新建项目中配制环境新建项目中配制环境,我们完美的在新建项目中完成了绑定需要的环境,接下来才是最关健的一步。绑定自定义C++类至Lua。@H_403_1@
事实上引擎为了方便我们应对不同平台,已经帮我们创建了不同平台的工程项目。为了编辑代码方便,我使用VS2013打开了"runtime-src"文件夹下的"proj.win32"工程。 前往项目录径“F:\Cocos2dx-Lua\GarfIEld\frameworks\runtime-src\Classes”,我将在这里创建一个自定义类"Pet",代码如下。
@H_403_1@
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #ifndef_PET_H_ #define _PET_H_ #include"cocos2d.h" class Pet: public cocos2d::Sprite { : Pet(); ~Pet(); CREATE_FUNC(Pet); : bool init(); voID setPet( const std::string&filePath); : std::stringname; }; #endif //_PET_H_ |
@H_403_1@
只是一个很简单的Pet类。@H_403_1@
1.继承于引擎定义的精灵类Sprite;@H_403_1@
2.通过引擎定义的宏CREATE_FUNC(Pet)定义一个静态方法create();@H_403_1@
3.两个成员函数init()、setPet();@H_403_1@
4.具有一个数据成员name。@H_403_1@
非常的简单,我们正是要一切从简单开始!不过需要再次提醒的是,我们是在“F:\Cocos2dx-Lua\GarfIEld\frameworks\runtime-src\Classes”创建了Pet类,一会我们将用到这个路径。
@H_403_1@
准备好定义C++类之后,我们再回顾一下上一小节的内容,我们在环境测试中,通过执行“genbindings.py"脚本将Cocos2d-x引擎中所有的C++类文件绑定至Lua。(虽然测试环境时,我并没有说明这点。但是实事上在最后的结果中能看到"Generating lua bindings succeeds"这样的提示,聪明的读者一定猜到了它所完成的工作就是绑定C++类至Lua)。
@H_403_1@
接下来,打开 "genbindings.py,如果你对Python语言并不熟悉。哪请忽略其它的代码,只需要把你的视线焦点集中在 133 行至 151 行。
@H_403_1@
//指定tolua所在的录径无需修改 tolua_root= '%s/tools/tolua' %project_root //指定绑定脚本执行后,产生的绑定一系列文件输出保存于何路径 //虽然无需修改,但是我们要记住,我们产生的绑定文件是输出于 //"F:\Cocos2dx-Lua\GarfIEld\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto" output_dir= '%s/cocos/scripting/lua-bindings/auto' %project_root //这个数组中指定了要执行绑定脚本的一些配制参数,看到第一行,'cocos2dx.ini'是一个配制文件,我们可以在"genbindings.py"同级目录中找到它。‘cocos2d-x’实际上是在'cocos2dx.ini'配制文件中的第一行所指定的一个字符常量,主要是用于生成绑定桥接文件时,为诸如条件编译ifndef及生成的注册自定义类接口取名所用。一会我将会在后面稍提这点,这里如果不明白,请暂时忽略它。‘lua_cocos2dx_auto’是给生成的绑定桥接文件指定的言语件名。 cmd_args={ 'cocos2dx.ini' :( 'cocos2d-x' , 'lua_cocos2dx_auto' ),\ ...... 了解"genbindings.py"之后,在它的同级目录你可以找到"cocos2dx.ini",这是与之息息相关的配制文件。打开它,我们稍做了解。 |
评论列表(0条)