在2dx 3.10里面支持lua模块裁剪

3.10里面调整了文件结构,导致原来的lua模块裁剪不能再使用。如果需要对模块进行裁剪,可以使用下面的方法来进行处理:

对tools\simulator\frameworks\runtime-src\Classes\ide-support\RuntimeLuaImpl.cpp进行修改

  1. 添加包含下列头文件
    #include “cocosdenshion/lua_cocos2dx_cocosdenshion_manual.h”
    #include “network/lua_cocos2dx_network_manual.h”
    #include “cocosbuilder/lua_cocos2dx_cocosbuilder_manual.h”
    #include “cocostudio/lua_cocos2dx_coco_studio_manual.hpp”
    #include “extension/lua_cocos2dx_extension_manual.h”
    #include “ui/lua_cocos2dx_ui_manual.hpp”
    #include “spine/lua_cocos2dx_spine_manual.hpp”
    #include “3d/lua_cocos2dx_3d_manual.h”
    #include “audioengine/lua_cocos2dx_audioengine_manual.h”
    #include “physics3d/lua_cocos2dx_physics3d_manual.h”
    #include “navmesh/lua_cocos2dx_navmesh_manual.h”

  2. 修改文件尾部的void RuntimeLuaImpl::init()函数将lua_module_register(engine->getLuaStack()->getLuaState());一行替换为

    lua_State* L = engine->getLuaStack()->getLuaState();
    //Dont’ change the module register order unless you know what your are doing
    register_cocosdenshion_module(L);
    register_network_module(L);
    register_cocosbuilder_module(L);
    register_cocostudio_module(L);
    register_ui_moudle(L);
    register_extension_module(L);
    register_spine_module(L);
    register_cocos3d_module(L);
    register_audioengine_module(L);
    #if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
    register_physics3d_module(L);
    #endif
    #if CC_USE_NAVMESH
    register_navmesh_module(L);
    #endif

这样通过调整上面的注册代码就可以重新裁剪lua运行库。

我想问下,JS的能不能像这样搞?

您好,V3.10用lua开发,都用什么编辑器,用sublime text3没有智能提示,怎么破,盼复,谢谢