使用Cocos2d-x-3.6创建Lua项目Cocos Code IDE V1.2可调试

原创 2015年07月10日 22:44:12
Cocos2d-x-3.6
Cocos Code IDE V1.2.0
目的:朋友曾给过我建议,C++层与LUA层通过JSON进行数据传输,想实现一下这个功能。
背景:已经学过两周的cocos2dx啦,但仅仅止步于C++代码,虽然还涉及了一些JAVA代码,关于这个大家可以看我早些的博客。
需求:至少要建立一个LUA的项目,这里我们就对此展开讨论
实现:
首先最简单的方法是通过命令的方式创建项目cocos new xhome -p org.cocos2dx.xhome -l lua -d xxx,如此以来,Visual Studio打开项目生成,就可以生成可执行程序,当然也可以调试C++层代码,也仅仅是C++层代码。这么一来就满足不了我的需求了,若是我想实现我的功能必然要编写LUA逻辑,能调试LUA代码将对开发的效率有着至关重要的影响。走到这里只能放弃这个方法。
若想调试LUA代码,使用Cocos Code IDE当然应该是再合适不过了,这样我就去官网下载了最新版本Cocos Code IDE 2.0.0-beta,然而安装,创建项目,一切都太顺利了(中间可能要配置一下Engine Mode,配置这里的时候好像没有出错)但是最后再去Make(这里应该是编译吧,第一次用不懂的太多),就报了一个我一直也没有解决的问题,记不太清了,Lua SDK,要指定路径的意思,那个页面有kahlua和luaj两个选项,应该选一个,指定路径就能进行后续的编译等等操作吧。遗憾的是我一直没有找到解决方案。最后在官网上又看到了目前关于新版支持Lua并不是很好,而且有很多功能还处于未完成状态,对于一个仅仅是只想用一次的人来说,学习它实在划不来,算是给自己一个轻言放弃的理由吧。
这时我就把目光集中在Cocos Code IDE早期的稳定版本。其实官网都说1.2版本和2.0版本其实是两个东西,用的底层框架都不一样,一个是Eclipse,新版是intellij。于是这时我就卸载了新版安装了Cocos Code IDE v1.2.0版本。接下来我就慢慢说我遇到的各种问题。
首先当这个版本选择Engine Mode的时候,总是报Lua:不能找到D:\cocos2d-x-3.6\templates\lua-template-runtime\runtime\android/PrebuiltRuntimeLua.apk,请确保引擎是完整的并重试一次,不难理解程序检测到我指定的cocos2dx目录缺少关键性文件,就报错了。这个错误直接影响不能创建Lua项目,这个不是重点,但是依然有解决办法,就是下载一下cocos2d-x-3.4,把3.4版本的lua-template-runtime拷贝到3.6版本,3.6版本的重命名一下,不要删除了,下面还要用到呢。这样就能创建Lua项目了,关于lua-template-runtime和lua-template-default这两个模板的区别,网上也有很多朋友提到,lua-template-runtime就是专门给Cocos Code IDE使用的,而lua-template-default应该就是cocos命令行创建项目默认使用的模板。
然后直接创建的项目,debug会报错,这个错不重要,很有可能是3.4版本创建出来示例代码,已经不能在3.6版本中运行

然后就研究了一下cocos命令,发现可以这样创建项目,cocos new xhome -p org.cocos2dx.xhome -l lua -t runtime -d xxx,当然这是恢复3.6自己的lua-template-runtime创建的项目,如此以来我就可以好好看看3.6版本创建的专门针对Cocos Code IDE的项目到底长什么样子,创建成功后导入进Cocos Code IDE,发现还是不能运行,缺文件:runtime/win32/PrebuiltRuntimeLua.exe,这个文件原本就应该在lua-template-runtime里面包含的,可是不知道为什么3.6版本不再有这个文件夹了,也没有找到那篇文章特意提到这个问题。这个时候我尝试性的用Visual Studio打开项目,编译一下,发现在runtime文件夹中出现了exe的可执行文件,在运行-配置 模拟器路径那里指定一下,就可以成功运行了。建议最好在调试-配置里面进行指定,因为中间有一插曲,就是一调试就停在Play那个蓝色的界面,说什么连接不上超时之类了。这个问题也是困扰了我一段时间,在我将要放弃的时候,它又可以了,曾经我一度揣测,原因应该是这样的,VS编译出来的就是可执行文件,Cocos Code IDE指定以后,直接运行肯定是没有问题,但是调试我想应该是有一个外壳程序加载生成的可执行程序的吧,VS生成的时候也肯定不知道Cocos Code IDE调试的套路,所以一调试就死在那里。但是既然好了那就这样吧。

这样我就可以开始编写我的逻辑了,纵然最后我放弃了这个解决方案,选择了让Lua直接支持Protobuf来进行数据的解析。相比之下,我若用Json再传一次,不仅C++层和Lua层都需要支持解析Json格式数据,而且C++层需要为每个协议增加不同的处理逻辑,这样在协议发生改变或是增加新的消息协议都将需要重新编译C++代码,这将是很难忍受的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Cocos2dx 3.12 Lua开发环境搭建_01

本文记录在 Windows 下搭建 cocos2dx lua 开发环境,还有调试设置。 系统:Windows 7 64 IDE:Mircrosoft Visual Studio 2013 Cocos2...

LuaStudio——cocos2d-x专用Lua脚本IDE

LuaStudio is a fast, lightweight, extendable text, source and binary editor for Windows(Windows XP, ...
  • kenkao
  • kenkao
  • 2014年01月21日 17:57
  • 6353

命令行编译cocos2d-x遇到的问题。

今天命令行编译cocos2d-x生成APK包,遇到了几个
  • o_oxo_o
  • o_oxo_o
  • 2014年09月18日 20:43
  • 10959

Cocos Creator使用VS Code调试方法

最近公司项目用Cocos做H5,我也就突然有用Cocos来做一个ios的手游的想法,Unity用惯了,想拓展下。结果么,用的我吐槽一大堆。首先就是Cocos的调试,太不方便了,看官方文档,也是讲的一点...

如何使用Cocos Code IDE调试Lua开发的游戏

支持调试的环境 在 Windows 上你可以调试Windows和Android游戏,在 Mac 上你可以调试Mac、iOS和Android游戏。我们以 Mac 作为开发环境来演示 Code ID...

cocos code ide选择Engie Mode时报错:Lua:不能找到D:\cocos2d-x-3.14.1\templates\lua-template-runtime\runtime\..

如题: coco code ide选择Engie Mode时报错:Lua:不能找到D:\cocos2d-x-3.14.1\templates\lua-template-runtime\runtim...

cocos code ide选择Engie Mode时报错:Lua:不能找到D:\cocos2d-x-3.14.1\templates\lua-template-runtime\runtime\..

如题: coco code ide选择Engie Mode时报错:Lua:不能找到D:\cocos2d-x-3.14.1\templates\lua-template-runtime\runtim...

LUA 面向对象

类继承的实现方式有三种类式继承、原型继承、掺元继承。 lua是采用类式继承。 1. PIL中的例子 http://book.luaer.cn/_98.htm 2.云风的例子 http:/...
  • lqk1985
  • lqk1985
  • 2012年01月10日 15:23
  • 5734

cocos2d-x 3.6创建项目代码

  • 2015年08月12日 14:05
  • 207KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Cocos2d-x-3.6创建Lua项目Cocos Code IDE V1.2可调试
举报原因:
原因补充:

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