从cocos2d-x 3.0 到 cocos2d-x 3.2 引擎升级记录

从cocos2d-x 3.0 到 cocos2d-x 3.2 引擎升级记录,第1张

概述以下是在WIN7 + VS2012环境下测试! 一、下载 到官网下载Cocos2dx-3.0-rc0。 二、导出C++接口到Lua方法          这一步可以按官方提供的文档(\cocos2d-x-3.0rc0\tools\tolua\ README.mdown)一步一步 *** 作: On Windows: ------------ * Make sure that you have instal

以下是在WIN7 + VS2012环境下测试!

一、下载

到官网下载Cocos2dx-3.0-rc0。

二、导出C++接口到Lua方法

这一步可以按官方提供的文档(\cocos2d-x-3.0rc0\tools\tolua\ README.mdown)一步一步 *** 作:

On windows:
------------

* Make sure that you have installed `androID-ndk-r9b`.
* Download python2.7.3 (32bit) from (http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi).
* Add the installed path of python (e.g. C:\Python27) to windows environment variable named 'PATH'.
* Download pyyaml from http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe and install it.
* Download pyCheetah from https://raw.github.com/dumganhar/cocos2d-x/download/downloads/Cheetah.zip,unzip it to "C:\Python27\lib\site-packages"
* Set environment variables (`NDK_ROOT`)
* Go to "cocos2d-x/tools/tolua" folder,and run "genbindings.py". The generated codes will be under "cocos\scripting\auto-generated\Js-bindings".

这里有个点要注意:一定要按上面的版本要求下载对应的工具,到目前官网上NDK的最新版本是r9d,而且这里是要求r9b。如果不是按版本要求就会出现以下问题:

'functional' file not found 的错误

解决方法有两个:a.下载对应版本b.把所有的.ini文件(\cocos2d-x-3.0rc0\tools\tolua目录下)里的4.7修改成4.8

完成之后,就是按最后一步说的,在命令行下执行cocos2d-x/tools/tolua目录下的genbindings.py。

最后结果就是在\cocos2d-x-3.0rc0\cocos\scripting\lua-bindings\auto目录下会生成一些.cpp和.hpp文件。

三、导出自定义的C++接口到Lua方法

到第二步,就是了解了导出的大概方法。我们最终的目的还是要导出自定义的接口。

这一步参考了这篇博客(http://www.cnblogs.com/mrblue/)。

总结了一下步骤:

1:环境,如果第二步是对的就OK了

2:写一个自己的C++类(LuaSprite.h这也是我测试cocos2dx-2.x版本时候的例子,继续用)

[cpp] view plain copy print ? #ifndefcocos2dx_lua_tests_by_guo_LuaSprite_h #definecocos2dx_lua_tests_by_guo_LuaSprite_h #include"cocos2d.h" usingnamespacecocos2d; classLuaSprite:publiccocos2d::Sprite { public: intvarInt; staticLuaSprite*createLuaSprite(constchar*_name); voIDLuaSpriteInit(); voIDLuaCallFun(); }; #endif

3.编写python脚本,直接修改原来的genbindings_New.py文件(复制一份)

a.修改生成目录到我们自己的工程目录:output_dir

b.修改命令参数:cmd_args

4. 修改ini配置文件,也就是上面cmd_args里配置的.ini文件(myclass.ini),同样的复制一份原来的.ini文件修改。

主要修改以下几个:

[myclass]

prefix =myclass

target_namespace =

headers =%(cocosdir)s/tests/lua-empty-test/project/Classes/LuaSprite.h

classes =LuaSprite*.

skip =

abstract_classes =

这里有几个地方要注意的:

a.节点名要跟cmd_args里配置的一致

b.Classes这项按照参考的那篇blog里配置方法,生成的文件里没内容的,后来反复对比原来的配置修改成现在这样,最后成功了

5. 最后执行genbindings_New.py,如果成功你会看到:

?
1 2 3 4 5 6 dos2unix:SkipPingAPI,notaregularfile. dos2unix:convertingfilelua_MyClass_auto.cpptoUnixformat... dos2unix:convertingfilelua_MyClass_auto.hpptoUnixformat... --------------------------------- Generatingluabindingssucceeds. ---------------------------------


同时也会在,指定的目录下生成:

API文件夹、lua_MyClass_auto.cpp、lua_MyClass_auto.hpp

其中lua_MyClass_auto.cpp里有个注册函数内容如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int lua_register_MyClass_LuaSprite(lua_State*tolua_S) { tolua_usertype(tolua_S, "LuaSprite" ); tolua_cclass(tolua_S, "LuaSprite" , "cc.Sprite" , nullptr ); tolua_beginmodule(tolua_S, "LuaSprite" ); tolua_function(tolua_S, "LuaSpriteInit" ,lua_MyClass_LuaSprite_LuaSpriteInit); tolua_function(tolua_S, "LuaCallFun" ,lua_MyClass_LuaSprite_LuaCallFun); tolua_function(tolua_S, "createLuaSprite" ,lua_MyClass_LuaSprite_createLuaSprite); tolua_endmodule(tolua_S); std::stringtypename= typeID (LuaSprite).name(); g_luaType[typename]= "LuaSprite" ; g_typeCast[ "LuaSprite" ]= "LuaSprite" ; return 1; }

到目前为止完成了环境配置与自定义接口Lua接口。

总结

以上是内存溢出为你收集整理的从cocos2d-x 3.0 到 cocos2d-x 3.2 引擎升级记录全部内容,希望文章能够帮你解决从cocos2d-x 3.0 到 cocos2d-x 3.2 引擎升级记录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1026145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存