Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx 3.1 cpp版本转lua版本 mac大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

项目最开始使用的c++开发,第一版上线后总结经验,感觉走了很多弯路,所以第二版开发我决定将项目转成lua。使用c++开发主要遇到这几个麻烦:一,招人不易,我们是小公司,没法用土豪公司的待遇福利来吸引熟手,只能招实习生或刚毕业的,这部分人c++又不是很熟练,写出来的代码难免有各种问题,而找个会写lua的就简单多了。二,c++的强大可较好的体现在架构上,可以方便运用各种设计模式,但我们项目开发时间紧,架构几乎没有,所以c++的优势反而不如lua体现的好。三,最重要的一点,热更新啊。。。第一版没有代码热更新,各种发版本,各种玩家流失,多么痛的领悟

在转lua的过程中主要有三点问题:一,tolua的使用。二,luajit对64位机器的支持。三,转android

@H_673_6@一,tolua的使用

tolua工具在cocos/tools/tolua目录下面

1.按照README.mdown文件中的说明,一步步安装所需环境组件

2.修改genbindings.py中的output_dir和cmd_args,output_dir是生成的tolua文件的位置,如图

3.新建自己的ini文件(参其他的ini文件),ini文件名和上图中的1相同,第一行的名字要和上图中的2相同,然后其他参数都有详细说明,可按需配置,用不到的置空即可。我用到的配置参数如下图


4.运行genbindings.py脚本生成.h .cpp文件,加入到工程中,最后在加载lua文件前别忘了注册你导出的lua接口,如下图


@H_673_6@二,luajit对64位机器的支持

3.1版本的luajit还没有支持64位机器,包括arm64,x86_64,使用iphone6,6plus真机和模拟器时链接各种报错,使用ipone5倒是可以,可就这么打得包appstore也审核不过啊。所以google后,在这个blog找到了答案点击打开链接,这里面说的很详细了,我补充一句,在other linker flags中增加参数 -pagezero_size 10000 -image_base 100000000按下图配置即可。

@H_673_6@三,转android

已完成,可能过程对其他项目参价值不是很大,因为我是通过研究build_native.py脚本,然后修改几个参数,修改android.mk等等,这里就不赘述了,如有兴趣,可留言

过程中遇到了几个错误:

一,[LUA ERROR] [String "@R_618_10613@ire "DeprecatedEnum.lua""]

是因为cocos引擎用到的lua脚本没有复制到asset目录下,打开编译android的脚本文件(我用到的是build_native.py),在copy_resources函数下添加复制lua资源的代码,记得后面的路径改成自己项目的相对路径

    common_script_dir = os.path.join(app_android_root,"../../../frameworks/cocos2d-x/cocos/scripTing/lua-bindings/script")
    copy_files(common_script_dir,assets_dir)

    luasocket_script_dir = os.path.join(app_android_root,"../../../../frameworks/cocos2d-x/external/lua/luasocket")
    for root,dirs,files in os.walk(luasocket_script_dir):
        for f in files:
            if os.path.splitext(f)[1] == '.lua':
                fall = os.path.join(root,f)
                shutil.copy(fall,assets_dir)
二,dvmFindClassByName rejecTing 'org.cocos2dx.cpp.AppActivity'

原因是通过jni调用java函数时没有找到org.cocos2dx.cpp.AppActivity的类,因为我的包名已经改成org.coco2dx.lua了,所以找不到。。。

大佬总结

以上是大佬教程为你收集整理的cocos2dx 3.1 cpp版本转lua版本 mac全部内容,希望文章能够帮你解决cocos2dx 3.1 cpp版本转lua版本 mac所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。