cocos2dx 3.1 cpp版本转lua版本 mac
来源:互联网 发布:php.ini设置 编辑:程序博客网 时间:2024/06/05 14:08
项目最开始使用的c++开发,第一版上线后总结经验,感觉走了很多弯路,所以第二版开发我决定将项目转成lua。使用c++开发主要遇到这几个麻烦:一,招人不易,我们是小公司,没法用土豪公司的待遇福利来吸引熟手,只能招实习生或刚毕业的,这部分人c++又不是很熟练,写出来的代码难免有各种问题,而找个会写lua的就简单多了。二,c++的强大可较好的体现在架构上,可以方便运用各种设计模式,但我们项目开发时间紧,架构几乎没有,所以c++的优势反而不如lua体现的好。三,最重要的一点,热更新啊。。。第一版没有代码热更新,各种发版本,各种玩家流失,多么痛的领悟
在转lua的过程中主要有三点问题:一,tolua的使用。二,luajit对64位机器的支持。三,转android
一,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接口,如下图
二,luajit对64位机器的支持
3.1版本的luajit还没有支持64位机器,包括arm64,x86_64,使用iphone6,6plus真机和模拟器时链接各种报错,使用ipone5倒是可以,可就这么打得包appstore也审核不过啊。所以google后,在这个blog找到了答案点击打开链接,这里面说的很详细了,我补充一句,在other linker flags中增加参数 -pagezero_size 10000 -image_base 100000000按下图配置即可。
三,转android
已完成,可能过程对其他项目参考价值不是很大,因为我是通过研究build_native.py脚本,然后修改几个参数,修改android.mk等等,这里就不赘述了,如有兴趣,可留言
过程中遇到了几个错误:
一,[LUA ERROR] [string "require "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.3 scrollView lua 版本幻灯片效果
- cocos2dx lua版本让图片变灰
- cocos2dx Lua 版本中无法调用setLastFrameCallFunc
- Cocos2dx lua 3.10版本绑定cjson流程
- mac下配置cocos2dx-3.0RC版本
- mac下配置cocos2dx-3.0RC版本
- cocos2dx 3.0 final版本 mac 创建工程
- Cocos2dx-3.0-rc0版本Lua的配置与使用
- 关于cocos2dx-lua版本中游戏时间显示问题
- cocos2dx: win32程序Release和debug版本:lua:print函数
- cocos2dx 3.x以上版本 lua中使用protobuf
- cocos2dx-lua绑定之代码编辑器兼容cocos2dx 3.0 api版本
- cocos2dx 历史版本下载
- cocos2dx 历史版本下载
- Cocos2dx 版本下载方法
- cocos2dx 哪个版本最好
- cocos2dx 3.1.1 mac上新建项目lua C++
- 金融行业移动信息化解决方案
- 【Cocos2d-x游戏引擎开发笔记(5)】自定义动画
- java.lang.VerifyError解决方案 Android
- Cas(03)——Cas Server中各配置文件介绍
- 能够把自动问答机制应用到运维中吗?
- cocos2dx 3.1 cpp版本转lua版本 mac
- SQLCookbook 学习笔记 6 字符串
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- iOS 修改状态栏字的颜色(白色)
- Java程序员从笨鸟到菜鸟之(十六)CSS基础积累总结(上)
- 四、基于微信的办公
- 【Cocos2d-x游戏引擎开发笔记(6)】触屏事件与多媒体
- java垃圾回收机制
- leetcode Longest Common Prefix