cocos2dx-lua_修改源码流程

原创 2016年09月28日 12:24:59
以下是在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 3.0项目并解决一些编译问题

新建一个新的项目,z
  • CyWn_d
  • CyWn_d
  • 2014-05-14 10:33:11
  • 2094

quickcocos2dx修改c++源码,并且导出给lua使用。

1.修改相应的.h和.cpp文件 2.
  • y505772146
  • y505772146
  • 2014-09-10 11:35:23
  • 1408

Cocos2d-x 创建自定义项目模板

你是否曾经为cocos方便快速开发而兴奋,你是否曾经为各种工具的便利开发而感动,但现在的你是否为每次创建一个新的项目都是HelloWorldScene而苦恼? 好吧,其实我也感觉到了,每次创建一个...
  • w337198302
  • w337198302
  • 2014-09-02 12:45:10
  • 2410

再谈Cocos2dx2.x.x编译

虽然2代Cocos2dx是土埋半截的东西,但是各大源码站上2系的源码不在少数,而且现在搜编译方法,各种文章也比较乱,这里我总结下。 有些文章说要装cygwin那劳什子的玩意,那玩意我装过几次,都非...
  • starcat2002
  • starcat2002
  • 2017-07-02 19:31:48
  • 377

cocos2dx导入已有的项目

转载自:http://blog.csdn.net/sevenseeker/article/details/22943967 以熊同学奇怪大冒险为例子,源码下载地址:http://blog.c...
  • wulong710
  • wulong710
  • 2017-06-27 16:16:37
  • 760

cocos2dx修改引擎代码进行lua绑定

之前,因为项目需求,需要重写一下贝塞尔曲线,因为贝塞尔曲线在执行时,没有把考虑执行体的角度增加进去,所以为了实现这一需求,现在要将贝塞尔重写一下。通过查看源码,发现BezierTo继承BezierBy...
  • u011874528
  • u011874528
  • 2016-07-23 17:59:10
  • 874

Cocos2d-x Lua引擎制作的游戏代码加密

使用cocos luacompile完成,XXTEA加密。
  • HQC17
  • HQC17
  • 2017-01-15 23:18:22
  • 2686

《Cocos2d-x实战 Lua卷》源码

  • 2018年01月22日 13:16
  • 60B
  • 下载

用Cocos Quick+Lua写的射击游戏——月球战士(MoonWarriors)附源码

越来越多的公司选择用脚本来开发手游了,Cocos2d-x支持JavaScript和Lua。和C++相比,用脚本写起来更随心所欲。尽管C++11之后,写起代码来更顺手了,但还是比不上脚本的方便啊。Lua...
  • booirror
  • booirror
  • 2015-11-04 23:27:42
  • 2166

cocos2dx-lua开发旅程(一)

最近要做一个手游项目,打算用cocos2dx来做,我也是初学者,网上很多书籍和资料都是采用cocos2dx的c++版本来做开发示例的 很少关于cocos2dx和lua怎么结合在实际项目中的教程,这使...
  • a6627651
  • a6627651
  • 2015-03-05 16:37:49
  • 21037
收藏助手
不良信息举报
您举报文章:cocos2dx-lua_修改源码流程
举报原因:
原因补充:

(最多只允许输入30个字)