转自:http://www.jb51.cc/article/p-hfgtzhrv-a.html
原文请猛戳:
http://galoisplusplus.gitcafe.io/blog/2015/01/04/quick-cocos2d-x-pitfa...
本渣最近一个月来开始接触quick-cocos2d-x,用lua开发比c++要快些,但也因为quickx目前的一些坑,让本渣折腾了不少时间。在此做点记录,希望能让别人少走些弯路。本文将不时更新。
quickx的uiloader只能解析cocostudio v1.5(windows版)的json
现象
cocostudio的Mac版v1导出的json用uiloader解析有问题,另外cocostuio v2暂无导出json的功能,而uiloader只能解析json格式。
建议
- 如果大量使用quickx的ui类,还是用cocostudio v1.5为好
- 如果不想切换UI编辑器,可以直接用cocos2d-x的csloader,但要小心与quickx的ui类混用的情况(下文会提及)。
- 如果不怕折腾,可以研究下cocostudio v1.5的json格式,改quickx的源代码。
quickx独立的触摸响应与cocos2d-x的存在不兼容问题
在同时使用cocos2d-x的Widget类和quickx的ui类时,quickx的ui类没有接受响应事件。
在此仅举一个典型例子,在quickx的UIScrollView中加入一个csloader解析的Widget,则UIScrollView无法滚动。
照理说,Widget的触摸事件的priority是0(graph priority),quickx的LuaEventNode的priority是-1(fixed priority),应该是LuaEventNode先接收touch进行处理才对,
但是Widget是单点触摸,而LuaEventNode是多点触摸,再加上cocos2d-x是先处理单点再处理多点的,所以触摸事件反而是先到了Widget了。
不幸的是Widget默认是swallow touch的,所以触摸事件不会到LuaEventNode。
quickx的UIScrollView/UIListView的bug
老实说,这两个ui类确实不够成熟。
- 用local node space坐标与world space坐标做比较。引起的问题有:没有惯性滚动,UIListView的item没完全移除viewRect就被remove掉等等。本渣向quickx提了两个PR,前一个过了几周才被处理,代码有conflict,最后还是开发者再提了新的PR去merge了,后一个很快就被merge了。所以目前更新代码就可以了。
- UIListView若是所设的item size小于item的cascadeBoundingBox大小,滚动时会有死循环,反复load item和remove item。开发者后来加了个patch,该bug重现少了,但还是存在的。
LuaEventNode崩溃
点击crash,是cocos2d-x C++的内存管理报错。
已有人向quickx报过bug,但开发者回复中提到的patch被没有解决问题
建议
在LuaEventNode的构造函数时retain参数node,在析构函数中release
原文地址:https://www.jb51.cc/cocos2dx/339560.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。