quick-cocos2d-x踩坑记

quick-cocos2d-x踩坑记,第1张

概述转自:http://www.voidcn.com/article/p-hfgtzhrv-a.html 原文请猛戳: http://galoisplusplus.gitcafe.io/blog/2015/01/04/quick-cocos2d-x-pitfa... 本渣最近一个月来开始接触quick-cocos2d-x,用lua开发比c++要快些,但也因为quickx目前的一些坑,让本渣折腾了不少时

转自: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。

彻底杜绝此类混用。但由于之前提到的uiloader的问题,可能无法完全使用quickx的ui类。 [workaround]如果不需要多点触摸,可以把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

总结

以上是内存溢出为你收集整理的quick-cocos2d-x踩坑记全部内容,希望文章能够帮你解决quick-cocos2d-x踩坑记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存