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++代码,这将是很难忍受的。

使用Cocos2d-x-3.6创建Lua项目Cocos Code IDE V1.2可调试的更多相关文章

  1. ios – 如何使用Objective C类中的多个参数调用Swift函数?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  2. ios – Swift 4添加手势:覆盖vs @objc

    我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

  3. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  4. ios – 以编程方式在Swift中添加联系人

    我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

  5. ios – 自定义Xcode IDE插件错误:“找不到名为…的类”

    我已经开发了自己的自定义Xcode.ideplugin来向Xcode的ObjectLibrary窗格添加自定义对象.我有一个基于我称为IBMyCustomObject的类的自定义对象模板,后者又有一个名为MyCustomObject的类的runtimeClassName(运行时类名是在加载Xib文件时将在运行时实例化的类的名称).经过大量的研究,我已经成功地完成了这项工作.我现在可以将自定义对象从

  6. ios – Veracode,调试符号和XCode

    我正在尝试通过Veracode扫描iOS应用程序:一个应用程序安全平台.为了使它们扫描.IPA,.IPA需要包含调试符号.对于正在使用的Archive构建配置和项目/目标,我已指定:>生成调试符号:是>复制期间剥离调试符号:NO>死代码剥离:没有>默认隐藏的符号:NO>剥离链接产品:没有然而,在提交.IPA时,Veracode仍然给我以下错误:没有调试符号编译的主文件–1个文件我需要采取另一个步骤来创建调试符号,或许是存档吗?

  7. ios – 为目标c中的方法传递未知类型的参数,可能吗?

    是否可以将未知类型的参数传递给objective-C方法?在C#中你可以写实现这一点,但我知道Objective-C没有泛型,所以有没有其他方法可以在Objective-C中实现这一点?我需要这个,因为我想创建一个方法来改变不同对象的文本颜色,如UITextField和UIButton的占位符文本.所以我的计划是创建一个名为textWhite的方法,然后在此方法中检查对象的类型,然后运行匹配的代码以使文本颜色变为白色.解决方法是的,可以传递未知类型的参数.见下面的例子.请参考使用id对象的链接作为参数Us

  8. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

    我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

  9. ios – “禁用模块时使用’@import’”错误 – 启用模块和链接框架= YES

    我有一个使用CocoaPods并使用’SCLAlertView-Objective-C’窗格的项目.该pod使用@importUIKit;模块样式导入.我在目标和项目设置中将“启用模块(C&Objective-C)”和“自动链接框架”设置为YES.当模块被禁用时,我仍然得到“使用’@import’错误.有没有什么可以阻止Xcode能够启用模块,如使用.pch文件,任何链接器标志,或者我没有提到的任

  10. XCode 6.3立即在抛出的Objective-C异常上引发SIGABRT

    考虑以下目标-C代码在XCode6.2中,它按预期工作(记录“错误消息”).但是,由于我们升级到6.3,抛出行(throwstd::logic_error…)引发SIGABRT(堆栈跟踪仅包含_cxa_throw和_pthread_kill,超出applicationdidFinishLaunchingWithOptions)并导致应用程序崩溃.这只发生在我们的应用程序中–当我将完全相同的代码复制

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部