以下是在cocos2dx-3.10、win7、Cocos Code IDE1.2下
假定你已经配置好了cocos2dx的环境。

1.修改源代码步骤
(1)在Cocos/Cocos2d-x/cocos2d-x-3.10/extensions/assets-manager/中修改了源代码
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp

(2)在Cocos/Cocos2d-x/cocos2d-x-3.10/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp

直接查找 lua_cocos2dx_extension_AssetsManagerEx_create

在当前路径的api中修改
AssetsManagerEx.lua

(3)在Cocos/Cocos2d-x/cocos2d-x-3.10/cocos/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp

直接查找 js_cocos2dx_extension_AssetsManagerEx_create

注意:我们是使用(4)中的cocos命令重新生成预编译文件的,若你修改的函数是与Lua相关的,
  那么你同时要修改js相关的代码,否则会导致(4)生成预编译库失败。

(4)生成预编译库
设置你的环境变量
COCOS_CONSOLE_ROOT D:\Cocos\Cocos2d-x\cocos2d-x-3.10\tools\cocos2d-console\bin

在win7上打开命令行工具。
选输入以下确定你可以使用cocos:
cocos -h

然后,根据你电脑的情况输入:
cocos gen-libs -p win32 --vs 2013 -m debug

注意:cocos gen-libs的语法可到以下网址查看
http://www.cocos2d-x.org/wiki/Cocos_gen-libs

-e后加引擎路径
-p后加:ios, mac, android, win32     若同时多个 -p ios -p android
-m后加:debug, release
--vs后加:2013,2015  默认自动查找合适的vs版本
--appabi后加:x86, armeabi, armeabi-v7a  默认armeabi,若同时多个 armeabi:x86

生成android的预编译库:
cocos gen-libs --vs 2013 -p android

注意:请查看你的环境变量,比如你设定了
COCOS_CONSOLE_ROOT D:\Cocos\frameworks\cocos2d-x-3.8\tools\cocos2d-console\bin
那么在没有指定引擎路径时,就会使用这个环境变量指定的地址中的
D:\Cocos\frameworks\cocos2d-x-3.8作为引擎路径。
此时,若我使用以下命令编译
cocos gen-libs -p win32 --vs 2013 -m release
编译成功后,会在Cocos/frameworks/cocos2d-x-3.8/prebuild/win32下生成新的预编译文件。

cocos2dx引擎自带的预编译文件是release的,若你想生成debug的,只需要执行如下:
cocos gen-libs -p win32 --vs 2013 -m debug
使用以上命令,不管是release、debug都会覆盖原来的prebuild/win32下的文件,请注意保存文件。

2.在Cocos Code IDE中调试
2.1.若你选择是用Framework Mode,则你在Cocos Code IDE中运行的模拟器都是使用的是frameworks下的代码,
若你想在这里使用修改了源代码的函数,那你就要对frameworks下的代码做以上同样的修改和编译。
注意:Cocos Code IDE1.2中使用Engine Mode会提示“未在cocos2dx目录下找到cocos console”。

我们需要执行以下步骤(与上面的步骤相同):
(1)在Cocos/frameworks/cocos2d-x-3.8/extensions/assets-manager/中修改了源代码
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp

(2)在Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp

直接查找 lua_cocos2dx_extension_AssetsManagerEx_create

在当前路径的api中修改
AssetsManagerEx.lua

(3)在Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp

直接查找 js_cocos2dx_extension_AssetsManagerEx_create

(4)生成预编译库
同1中的(4)

2.2.修改引用库
(1)在Cocos Code IDE/configuration/org.eclipse.osgi/bundles/61/1/.cp/resource下创建
cocos2dx-3.8文件夹,仿照同目录的cocos2dx-3.2,
将Cocos/frameworks/cocos2d-x-3.8/cocos/scripting/lua-bindings/auto中的api文件夹压缩为api.zip
并创建一个cocos2dx-3.8.rockspec文件,内容仿照cocos2dx-3.2下的cocos2dx-3.2.rockspec。

(2)选中项目名字,右击鼠标,在弹出菜单中选"属性",在属性窗口选Lua,再选Build Path,
在右侧选Libraries,可以在右侧区域看到如下:
Cocos2dx 3.2
Lua5.1

默认Cocos Code IDE使用Cocos2dx 3.2作为Lua的库,这也是在做了以上修改源代码的操作,并重新编译,
运行项目却发现修改的函数没有起效的原因。

将Cocos2dx 3.2删除,点击"Add Libraries",点击"下一步",在弹出窗口点击“Configure”,在弹出窗口
点击"New",在弹出窗口输入Cocos2dx 3.8,点击“确定”,然后再点击"Add ZIPs",会直接打开(1)中我们
创建的位置,选择api.zip,点击“确定”,点击“完成”。
可以在右侧区域看到如下:
Cocos2dx 3.8
Lua5.1

用同样的方法可以创建Cocos2dx 3.10的库。

2.3.调试项目
(1)创建Cocos Lua项目
点击Cocos Code IDE1.2的“文件”,点击“新建”,点击“项目”,在弹出窗口点击“Cocos Lua工程”,
点击“下一步”,设置项目名字,点击“完成”。

(2)创建模拟器
点击Cocos Code IDE1.2顶部快捷功能菜单中的“构建模拟器”按钮,在弹出窗口点击"下一步",再点击
“构建win32模拟器”,点击“生成”。
成功后,会在项目目录下创建一个simulator/win32目录,其下会有一个以你项目命名的exe文件,这就
是你的win32模拟器。另外,此目录下还有一些dll文件,这些dll文件就是从
Cocos/frameworks/cocos2d-x-3.8/prebuilt/win32下拷贝过来的。

(3)以win32 支持断点运行项目
在MainScene.lua中的MainScene:onCreate()中调用你修改过的函数,并打断点。
点击Cocos Code IDE1.2顶部快捷功能菜单中的“win32 支持断点”按钮。
按F5按钮进行单步调试,若你调用的函数有错误,就会报错。
若没有错误,会显示cocos2dx的默认logo。
此外,在frameworks/runtime-src/proj.win32下会生成一个Debug.win32文件夹,其中包含了从
Cocos/frameworks/cocos2d-x-3.8/prebuilt/win32下拷贝过来的预编译库。

======================================
以下是在cocos2dx-3.9、mac下

1.查看环境变量:
打开终端,输入 
vim .bash_profile

确定有如下的配置:
export COCOS_CONSOLE_ROOT=/Applications/Cocos/frameworks/cocos2d-x-3.9/tools/cocos2d-console/bin

2.修改源代码步骤
(1)在Cocos/frameworks/cocos2d-x-3.9/extensions/assets-manager/中修改了源代码
AssetsManagerEx.h
AssetsManagerEx.cpp
Manifest.h
Manifest.cpp

(2)在Cocos/frameworks/cocos2d-x-3.9/cocos/scripting/lua-bindings/auto/中修改
lua_cocos2dx_extension_auto.cpp

直接查找 lua_cocos2dx_extension_AssetsManagerEx_create

在当前路径的api中修改
AssetsManagerEx.lua

(3)在Cocos/frameworks/cocos2d-x-3.9/cocos/scripting/js-bindings/auto/中修改
jsb_cocos2dx_extension_auto.cpp

直接查找 js_cocos2dx_extension_AssetsManagerEx_create

3.生成预编译库
打开终端,输入以下,确定你可以使用cocos:
cocos -h
然后输入:
cocos gen-libs -p ios -m release

成功生成后,在Cocos/frameworks/prebuilt/ios下会生成:
libcocos2d iOS.a
libjscocos2d iOS.a
libluacocos2d iOS.a
libsimulator iOS.a

生成android的预编译库:
cocos gen-libs -p android -m release

生成mac的预编译库:
cocos gen-libs -p mac -m release
 
 
 

cocos2dx-lua_修改源码流程(cocos2dx-3.10、win7、Cocos Code IDE1.2)的更多相关文章

  1. 3 cocos2dx 3.0 源码分析-mainLoop详细

    简述:   我靠上面图是不是太大了, 有点看不清了.  总结一下过程: 之前说过的appController 之后经过了若干初始化, 最后调用了displayLinker 的定时调用, 这里调用了函数 ...

  2. django-admin的源码流程

    一.admin的源码流程 首先可以确定的是:路由关系一定对应一个视图函数 a.当点击运行的时候,会先找到每一个app中的admin.py文件,并执行 b.执行urls.py admin.site是什么 ...

  3. Django session 源码流程

    流程 Django session源码流程 首先执行的是SessionMiddleware的init方法 import_module(settings.SESSION_ENGINE) 导入了一个 dj ...

  4. Django drf:序列化增删改查、局部与全局钩子源码流程、认证源码分析、执行流程

    一.序列化类的增.删.改.查 用drf的序列化组件   -定义一个类继承class BookSerializer(serializers.Serializer):   -写字段,如果不指定source ...

  5. Android5.1.1 - APK签名校验分析和修改源码绕过签名校验

    Android5.1.1 - APK签名校验分析和修改源码绕过签名校验 作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件“frameworks/base/cor ...

  6. Flask 源码流程,上下文管理

    源码流程 创建对象 from flask import Flask """ 1 实例化对象 app """ app = Flask(__na ...

  7. ES6.3.2 index操作源码流程

    ES 6.3.2 index 操作源码流程 client 发送请求 TransportBulkAction#doExecute(Task,BulkRequest,listener) 解析请求,是否要自 ...

  8. Windows7 64位环境6sv2.1大气传输模型修改源码添加国产高分卫星GF-1 GF-2光谱响应支持

    下面开始添加国产卫星光谱响应的支持: 以下主要参考文章“6S大气传输模型修改源码添加.自定义卫星光谱响应(以HJ-1B CCD为例)”网址:http://blog.csdn.net/sam92/art ...

  9. Eureka服务端源码流程梳理

    一.简述 spring cloud三步走,一导包,二依赖,三配置为我们简化了太多东西,以至于很多东西知其然不知其所以然,了解底层实现之后对于一些问题我们也可以快速的定位问题所在. spring clo ...

随机推荐

  1. 解析ListView联动的实现--仿饿了么点餐界面

    一.博客的由来 大神王丰蛋哥 之前一篇博客仿饿了点餐界面2个ListView联动(http://www.cnblogs.com/wangfengdange/p/5886064.html) 主要实现了2 ...

  2. java web学习总结(二十四) -------------------Servlet文件上传和下载的实现

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  3. Spring 4 + Quartz 2.2.1 Scheduler Integration Example

    In this post we will see how to schedule Jobs using Quartz Scheduler with Spring. Spring provides co ...

  4. JS eval()函数的一些见解

    一.eval是基本使用规则 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 2 eval(string) 3 string必需.要计算的字符串,其中含有要计算的 ...

  5. Android中使用AsyncTask实现文件下载以及进度更新提示

    Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...

  6. PHP语法(一):基础和变量

    相关链接: PHP语法(一):基础和变量 PHP语法(二):数据类型.运算符和函数 PHP语法(三):控制结构(For循环/If/Switch/While) 最近有个H5项目的需求,需要服务端,考察过 ...

  7. 总结Cnblogs支持的常用Markdown语法

    一.什么是Markdown Markdown是一种可以使用普通文本编辑器编写的标记语言, Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写博客.世界上最流行的博客平台 ...

  8. WPF 自定义DateControl DateTime控件

    自定义日期控件,月份选择.如下是日期的一些效果图. 具体的样式.颜色可以根据下面的代码,自己调节即可    1.日期控件的界面 <UserControl x:Class="WpfApp ...

  9. 用普通计算机假设基于liunx系统的NAS部署FineReport决策系统

    何为NAS? 简单说就是连接在网络上,具备资料存储功能的装置因此也称为“网络存储器”.它是一种专用数据存储服务器.他以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽.提高性能.降低 ...

  10. 《Note --- Unreal 4 --- B project --- Second UV issue》

    Second uv 可以通过editor来生成: 这部分内容都是在staticMeshEditor这个文件夹下面的代码里: 关于UI的相应机制,有个文件UICommandList.cpp例如我点击st ...