cocos2dx-js看样子,好像上传了很久,上传完了吗?:950:
beta的目录结构我觉得是一个长久以来沉淀的结果,目录相对稳定,工具也相对完善
我们项目一直用beta做开发,遇到的问题比较少一些
rc版本在建立lua工程的时候,把res和src目录独立分开,去掉了原来的Resource目录,这点我觉得是比较让人吐槽的地方,也是非常难以习惯的,(当然我自己也有能力可以改回去)
cocos tools是做的不错的, 但是兼容性和调试的方便性就有待 考虑了
快来人吐槽吧,我来解答好了。。。
看来楼上各种吐槽、我表示没啥话好说的了。就是移植的时候能不能在复杂点啊?表示对新手压力好大啊
类型:bug
关键字:3.0rc0 3.0rc1出现的bugArmature
描述:当创建好Armature后 并addchild()后 进行removeChid()的操作 会报告内存错误 必出现 具体点的看这个http://www.cocoachina.com/bbs/read.php?tid=196734
类型:视频
平台: 各种平台都没有
版本: 每一个2d-x版本都没有
关键字:视频播放
描述:根本不兼容视频播放
建议:希望什么时候可以加上
建议你们把那些应该是const方法后面加上const,为啥CCNode的那些convertToXXX转换点的方法都是非const方法,每次我都要转型,你们做API设计的时候都不管的吗?
重新看了一下,估计所有get方法都没加const
,我开始觉得这是个态度问题了
另外,我觉得cocos2d-x的有些设计真的是糟糕透了,CCObject为什么要有update,这使得我必须继承一个公开的update成员,这非常不利于封装,有时候我不得不继承CCObject来封装一些类(由于成员函数指针),比如这个update,使得我不能设置自己的private的非虚update方法。我猜当初的设计主要是为了满足CCScheduler::scheduleUpdateForTarget方法,这很明显是一个不成熟的设计,如果一定要满足这个条件,完全不需要在CCObject上强加一个update方法,可以单独设置一个Updatable接口,里面只有一个update虚方法供调用,在CCScheduler::scheduleUpdateForTarget实现时用dynamic_cast判断是否继承自Updatable接口。好吧,最终我用私有继承解决了这个问题。
3.0版本出来后,这些设计很明显改观了很多,如果3.0的API设计可以打90分的话,我觉得3.0以前的版本的API设计最多也就是个及格分数。不顾语言差异,把另一个语言的版本直接抄过来通常并不是最好的选择,除了移植时必要的改动(那些硬性的语法差异),语言的差异几乎总是影响API的设计。对于实现,我也颇有微词,比如Objective-C的内存管理。要使用cocoa(或者cocoatouch)就必定要和引用计数打交道。这应该算是苹果的一个特色吧(尽管还是受到很多人的诟病),C++的语言特色是啥,一切以灵活为根本,如果需要,C++几乎可以做到一切,把内存释放的权力交给程序员,即使大多数程序员做得不够好,C++标准的制定者也不打算去掉这一原则。如果你是一个对编程非常热爱和执着的人,比如我,总是应该在思考代码的结构、层次、对象的关系、类的关系,我需要做抽象模型,我会用到语言的高级部分(比如虚拟继承),我要用最优秀的结构和最出色的算法来实现需求。但是在我观察了cocos2d-x(至少是2.x系列的版本),我发现这个引擎的很多地方试图在阻止我。
这里补充一个我的一个小经历,那还是在三年前学android的时候,那时,我试图在运行时对一个View类型对象动态添加一另个View,但这无法做到,只有ViewGroup才有这种能力(ViewGroup继承自View),但从上下文获知的信息中我只能知道是View类型。WHY?为什么这个看似多么常理性的思维,android却不去设定呢?(后来经过研究,我只能确定应该是由于API设计中涉及安全的原因,应该说android不去做这样的设计一定是有原因的,一个直接的推论是android认为View不应该具备这样的能力,但这又不符合正常的组合模式(组合模式是一种设计模式))。我不知道cocos2d-x的实现过程中有多少人去思考类似这样的问题(我指的是思考代码关系),有多少人是根据接口编程而不是根据实现编程,有多少人真正理解什么是根据接口编程而不是根据实现编程!至少在我对另一个项目组的主程职位进行面试的这个阶段,我没有发现真正具备这样能力的人(当然还包括其他方面),他们表现得糟糕透了,一个工作十年的哥们告诉我不知道为什么要优先选择组合,其次再考虑继承;一个工作七年的哥们告诉我迭代式开发中不需要用设计模式;一个工作六年的哥们告诉我一个斜45度视角的一个菱形区域的碰撞要转换成两个三角形的碰撞,哦!为什么他不把它映射成一个矩形区域呢
cocos2d-iphone是个好引擎,但cocos2d-x还需要很大的改进,但还是要对3.0赞一个。
感谢您对Cocos2d-x非常中肯的评价。您的每一点意见都是我们宝贵的财富,谢谢您对Cocos2d-x3.0的支持!:904:
类型:吐槽/bug
平台: all
版本: cocos2d-x v3.0rc1
关键字:文本输入框
描述:ccs里的文本输入框至今不支持退格键,这当真不算个bug么
建议:你说呢…
终于有吐槽的地方:我遇到一个问题,最新版cocos2dx-3.0rc0在win7下,按命令行cocos new。。。创建项目,eclipse打开运行,编译没有问题,但就是运行不起来,一运行就崩溃,跟踪发现是
super.onCreate(savedInstanceState);函数内部的:
try {
ai = getPackageManager().getActivityInfo(
getIntent().getComponent(), PackageManager.GET_META_DATA);
if (ai.metaData != null) {
String ln = ai.metaData.getString(META_DATA_LIB_NAME);
if (ln != null) libname = ln;
ln = ai.metaData.getString(META_DATA_FUNC_NAME);//这一句产生异常
if (ln != null) funcname = ln;
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(“Error getting activity info”, e);
}
抛出异常,到底是什么问题呢?我可什么也没有做,就一个简单的helloworld啊亲,log显示could not preload class for phone policy com.android.internal.policy.impl.phonewindow,到底是怎么个回事,急切求解答,万分感谢!!!
官方教程有吗?
槽点太多…
我其实只是想在cocos2d-js用weboscket而已,,,,,但是找不到什么教程之类的。。。
而且发现weboscket是扩展来的,默认没有打开。。。。。
能告诉我怎么样打开weboskcet吗?
类型:bug
平台: ios
版本: cocos2d-x v3.0rc2
关键字:cocos new
描述:创建新工程中ios包名没有修改过来 目前是org.cocos2d-x.${PRODUCT_NAME:rfc1034identifier}
Cocos2d-js 3.0 听说是可以在线更新的,林顺说这是可以欺负c++的地方。。。。
但是好像没找到一遍文档介绍这个狂拽酷炫叼炸天的功能。。。。。。
能弄个cocos2d-js 3.0的在线更新文档吗?
类型:建议
关键字:quick cocos2dx
描述:学习资料太少
建议:完善文档,最好能出频教程或书
类型:建议
关键字:ui编辑器
描述:ui编辑器生成的工程文件*.xml.ui里面记录的资源路径是绝对路径,如果上传到svn的话会经常导致冲突
建议:把路径改成相对路径,打开工程的时候知道打开位置用相对路径应该可以的
看完这些槽点,觉得没放弃2DX真的是哥们有颗坚强的心。
一直以来,各种跟不上呀。
一直以来,有新版本就要度娘各种问题,还好有一堆大侠在前面填坑了。
但是还是各种问题。
__Array* array_list = __Array::createWithContentsOfFile("txt.plist");
版主 这个貌似是bug 数组无法生成。
plist文档:<?xml version="1.0" encoding="UTF-8"?>