【意见征集】Cocos2d-x 槽点大收集(长期有效)

http://www.cocos2d-x.org/news/215

Highlights
Provided a download page for web developers to choose modules and download customized Cocos2d-JS web engine, in one single file, compressed or not, Online link.

好像那个online link打不开 :12:

类型:bug
关键字:Assert failed: TextureID is greater than 2^18
描述:rc0的一个BUG,短时间不影响运行,时间一长,造成崩溃
建议:果断换版本吧,rc1已修复。
:2:

类型:吐槽
平台: ios 7.0 / android 4.3 / …
版本: cocos2d-js v3.0-alpha2
关键字:文档
描述:完全找不到最新版的文档。如:如何安装,如何将示例cocos2dx js的 js-moonwarriors编译发布到web,android,iOS,windows。如何从无到有应用新版开发一个游戏。sdk文档,如何优化等。
建议:伴随新版发布,一定要伴随新的文档进行发布,更新wiki和相关文档。

online link可以打开啊,地址是:http://www.cocos2d-x.org/filecenter/jsbuilder/

可能要翻下墙快一点,对不起给您造成了不便。官网论坛也在改革。请关注哦。

我觉得cocos2d-x如果能出现自己的一款可视化IDE才好

类型:bug
平台: all
版本: cocos2d-x v3.0 正式版
关键字:lua LuaMinXmlHttpRequest
描述:在lua中调用网络接口如果不成功 看到源码中直接return了 这样如果网络不通客户端页面一直处于等待状态展示给用户
建议:这个逻辑问题虽然不是严重bug但是有必要修复(成功失败都要进行返回页面信息进行处理)

— Begin quote from ____

引用第85楼pingchangxin于2014-04-30 16:53发表的 :
类型:bug
平台: all
版本: cocos2d-x v3.0 正式版
关键字:lua LuaMinXmlHttpRequest
描述:在lua中调用网络接口如果不成功 看到源码中直接return了 这样如果网络不通客户端页面一直处于等待状态展示给用户

— End quote

看了网络通的花 状态有点不对 应该获取 真实的网络状态 response->getResponseCode();

不行了就让你们主程自已作一个引擎呗,我到是觉得cocos2d-x用着也还好了。什么东西都有。反正用OpenGL作一个2D引擎应该问题不大。不就是几张图片的移动,旋转,缩放么。

类型:吐槽/bug/建议
平台: 全平台
版本: cocos2d-x v3.0 release
关键字:NewEventDispatch cocos2dx-3.0
描述:ScrollView 和 Menu 都重新创建了一个touch Event 无法自己控制 touch 事件能否继续传递

bool Menu::initWithArray(const Vector<MenuItem*>& arrayOfItems)
{
if (Layer::init())
{
auto touchListener = EventListenerTouchOneByOne::create();
touchListener->setSwallowTouches(true);

    touchListener->onTouchBegan = CC_CALLBACK_2(Menu::onTouchBegan, this);
    touchListener->onTouchMoved = CC_CALLBACK_2(Menu::onTouchMoved, this);
    touchListener->onTouchEnded = CC_CALLBACK_2(Menu::onTouchEnded, this);
    touchListener->onTouchCancelled = CC_CALLBACK_2(Menu::onTouchCancelled, this);
    
    _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
    
    return true;
}
return false;

}

void ScrollView::setTouchEnabled(bool enabled)
{
_eventDispatcher->removeEventListener(_touchListener);
_touchListener = nullptr;

if (enabled)
{
    _touchListener = EventListenerTouchOneByOne::create();
    _touchListener->onTouchBegan = CC_CALLBACK_2(ScrollView::onTouchBegan, this);
    _touchListener->onTouchMoved = CC_CALLBACK_2(ScrollView::onTouchMoved, this);
    _touchListener->onTouchEnded = CC_CALLBACK_2(ScrollView::onTouchEnded, this);
    _touchListener->onTouchCancelled = CC_CALLBACK_2(ScrollView::onTouchCancelled, this);
    
    _eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this);
}
else
{
    _dragging = false;
    _touchMoved = false;
    _touches.clear();
}

}

建议:能设置就行了

类型:吐槽
平台:全平台
版本:全版本
关键字:复制节点树

描述:
怎么样才能从一棵节点树复制出一棵同样结构位置的节点树T_T,累觉不爱。
比如说我有个table,然后里面的每个cell的结构都是一样的但是很复杂,因为读文件解析的速度很慢,在Unity里面是可以直接整个节点clone出来的,但是cocos2dx里面不行,于是一次一次的解析ccbi就成了瓶颈。

建议:
泣血求加入复制节点树的功能:6:

或者谁有什么好方法也可以告知,多谢。

— Begin quote from ____

引用第75楼learncocos2dx于2014-04-21 14:05发表的 :
Cocos2d-js 3.0 听说是可以在线更新的,林顺说这是可以欺负c++的地方。。。。

但是好像没找到一遍文档介绍这个狂拽酷炫叼炸天的功能。。。。。。

能弄个cocos2d-js 3.0的在线更新文档吗?:11: http://www.cocoachina.com/bbs/job.php?action=topost&tid=194722&pid=932650

— End quote

你去看看 AssetsManager 这个类嘛

— Begin quote from ____

引用第84楼a471194425于2014-04-30 13:50发表的 :
我觉得cocos2d-x如果能出现自己的一款可视化IDE才好 http://www.cocoachina.com/bbs/job.php?action=topost&tid=194722&pid=941348

— End quote

你是说 Cocos Code IDE 嘛 http://www.cocos2d-x.org/news/215

有些人还真是奇怪啊,这本来就是个吐槽帖,讨论下引擎哪里有用的不爽的地方,可以优化的地方,一起帮助完善引擎。
但总有人动不动就说“有本事你自己做一个啊”之类的 呵呵呵呵呵呵呵呵呵呵

1.非常同意你的二段构造的观点,工厂模式就是为了解决构造函数存在的种种问题,二段构造感觉也貌似解决了

2.人家说的是成员函数指针。。。。话说成员函数指针我确实也不是很喜欢,我比较喜欢一般函数指针,当然了lambda绝对是个好东西

3.真的是这样吗?想问下,在调用成员函数指针时把object 利用 dynamic_cast转换成ccobject不可以吗?这个操作反正无副作用。。。

4.autorelease我想问下大家吐槽的根源在哪里呢?

望大神指教

同意。。。开源项目其实坑多一些也是可以理解的,这世道。。。

类型:吐槽
关键字:中英文注释
我嘞个去,不是说2dx是中国人搞的么,那为何还把所有注释标注为英文?
现在真的很想吐槽这个,因为好多同学,蹦哥错误,弹得都是英文对话框,自己也不翻译,直接贴出来问你,确实比较烦,就不能来点中文注释么?
:2: :2: :2: 上中文注释啊!

类型:建议
平台: all
版本: all
关键字:scrollview uipageview uiListView
描述:用到这些控件老是有拖动(子view拖动)或者触摸的问题
建议:加上手势检测 是进行拖动view控件还是点击控件

我这边遇到的问题是 子view进行拖动 pageView 也跟着滑动

类型:bug
平台: 全平台
版本: 3.0正式版
描述:一个Node更换父节点之后,新的父节点与原来的父节点位置不一样,但是它并没有相应变化位置。
战斗特效的Armature作了一个池,有可能被应用到不同的角色上播放,并且自身相对角色的位置不变,
以前的版本里面setPosition并没有作if (_position.equals(position)) return;这样的保护,所以
并没有发现这个问题,而这个版本发现特效的位置原地不动,所以查出有这个问题。粗暴地屏蔽掉
这句保护不是正确的作法,希望能根本解决这个问题。

类型:吐槽/建议
平台: ios 7.0 / android 4.3 / …
版本: cocos2d-x-2.2.1
关键字:UIListViewEx->getIndex(item)
描述:我希望通过这个方法来判断传入的item是否已经在这个list中。然后看代码实现,发现若传入的item是null或list本身是null则返回-1,这么看来错误码就是-1了。但是还不能确定,因为接下来直接返回的是CCArray::indexOfObject(item),那么这个方法的错误码是什么呢?然后看CCArray的实现代码,发现查找失败的返回值恰好是-1。这样用着很没有安全感。还有个更无语的,UIListViewEx->getIndex(item)的返回值类型是无符号整型,无符号的你还返回-1是什么意思:2:
建议:1、UIListViewEx->getIndex(item)的3行注释基本是废话,毫无信息量,返回值没有表明查找失败时的返回值
2、UIListViewEx->getIndex(item)不要自作聪明的返回无符号整型,然后返回个-1

类型:吐槽
平台: win32
版本: cocos2d-x-3.0
关键字:editor-support
描述:感觉editor-support 的bug好多啊,例如:
UI编辑器中,设置了层次关系,再加动画,动画就会错乱
UI动画每次场景结束手动清理actionmanager
UI编辑器的动画播放时有个回掉,问题在于:
1 这个播放类的isplaying 是干啥的,一直false
2 回掉函数,看起来是动画播放结束执行,但是动画狂播(比如手点一下动画播一下,然后手狂点),这个回调会错乱