zoukankan      html  css  js  c++  java
  • 对cocos2dx引擎的改动

    最近用的引擎版本是cocos2dx-3.8.1-lua代码, 考虑到以后会开发多款游戏, 所以需要在cocos2dx上扩展一轻量级的框架,封装常用的游戏模块,这个框架包括c++工程和lua工程, 思想类似于以前的quick-Cocos2dx框架

    为了便于升级引擎,所以尽可能的不对 cocos2dx引擎的代码做改动, 但是不可避免要完成一些引擎的填坑工作

    以下是对cocos2dx引擎的修改点(记录在此,以后升级引擎同样要修改):

    1. 修改CCLuaStack.cpp中的lua_release_print, lua_print中去掉打印Lua字符串头, 将 替换成4个空格(在mac上 换行有问题)
    2. 修改mac/simulatorApp.mm 增加输出日志到文件,设置优先读取路径,去掉编译mac模拟器拷贝脚本和资源的功能, 从优先路径读取即可
    3. 修改mac/ConsoleWindowController.m中的MAX_LINE_LEN MAX_LINES_COUNT 定义扩大输出日志行数限制
    4. 修改lua工程配置 将luajit删除,改为引用lua,    因项目需要一套字节码android/ios用一套字节码维护,故暂时放弃luajit方案
    5. 将lua5.1.4升级为lua5.1.5并移植代码混淆方案(该方案基于quick3.3)
    6. 修改binder-generator/targets/lua/conversions.yaml中添加    LUA_FUNCTION : "${out_value} =  toluafix_ref_function(tolua_S,${arg_idx},0);ok &= ${out_value} != 0;"   这样可以支持LUA_FUNCTION的tolua导出(很奇怪的是cocos3.8.1去掉了这一行不知道目的何在?)
    7. 修改binder-generator/targets/lua/conversions.yaml增加dragonBones支持
    8. 修改AppDelegate.cpp增加加解密代码, 修改进入前台/后台执行代码 经逻辑删除放在lua端,增加发送前台/后台事件代码
    9. 修改Android工程的Application.mk增加 APP_PLATFORM:=android-19 这样用ndk10+编译就不会报错了
    10. 修改Android工程mk中的luajit应用改为lua

    在此基础上进行了扩展性封装

    1. 轻量级c++框架工程cola  (包括加密,cjson ios支付,dragonbones, lfs, sqlite,  native窗体, pbc, lpack)
    2. lua框架工程cola (包括常量模块,打印扩展, 设备相关扩展,方法扩展, label/node扩展 protobuf支持, Cache, 本地存储支持, 龙骨动画管理器, 广播管理器, sdk平台框架, 资源管理框架及通用接口编写, lua常用ui btn/list/窗体/界面/场景基类/富文本封装  加密/json解析/action/lua嗲用ocjava统一接口扩展, 不重启直接刷新界面机制)
    3. tools用于编写各种一键化脚本 (包括动画打包生成脚本, 密钥证书脚本,配置文件导出脚本, 字体文件生成脚本, android打包签名上传脚本, ios打包签名上传脚本, 字节码及加密脚本,  so/静态库生成脚本, tps生成大图脚本,  protobuf处理自动生成代码脚本, tolua绑定脚本)

    整个项目后续考虑支持

    多语言框架支持/  增加更新脚本及代码支持/  增量更新差异包支持/  sdk接入与完善/  日志上传支持/  spine测试与完善/  crash分析包支持/  shader支持/  AI行为树支持/  pomelo扩展支持/    

     

  • 相关阅读:
    C语言冒泡排序例子 JIANG
    C语言技巧 JIANG
    ligerui 表格树中 Uncaught TypeError: p.tree.isParent is not a function 纵一苇之所如
    npoi 已删除的功能: /xl/styles.xml 部分的 格式 (样式) 纵一苇之所如
    超过了为 maxJsonLength 属性设置的值。 纵一苇之所如
    MySQL+Canal+RocketMQ+SpringBppt+ElasticSearch+Redis开源整合
    [开源项目发布]Observer:根据map文件测试程序在运行中各个函数的运行时间
    [工作环境搭建]笔记本与台式机共享鼠标与键盘
    探秘C++机制的实现
    自己实现函数钩子
  • 原文地址:https://www.cnblogs.com/ColaZhang/p/4922186.html
Copyright © 2011-2022 走看看