博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
quick-cocos2d-x踩坑记
阅读量:6434 次
发布时间:2019-06-23

本文共 1390 字,大约阅读时间需要 4 分钟。

本渣最近一个月来开始接触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。

转载地址:http://cyaga.baihongyu.com/

你可能感兴趣的文章
C#向win32程序窗口中的文本框设置指定文本
查看>>
js判断对象的类型的四种方式
查看>>
ETL (数据仓库技术)
查看>>
ping广播地址会如何(转)
查看>>
count(*)与count(1)、count('xxx')等在使用语法方面的区别
查看>>
每日踩坑 2018-11-26 MVC Razor ActionLink 生成的URL中多生成了一个参数 ?length=n
查看>>
洗礼灵魂,修炼python(47)--巩固篇—定义类的方法之@classmethod,@staticmethod
查看>>
Okhttp常用方法示例
查看>>
软件测试2019:第六次作业—— Web功能测试(含Selenium IDE实验)
查看>>
学生学籍管理系统
查看>>
Mysql中Join用法及优化
查看>>
雨课堂知识点总结(十四)
查看>>
[LOJ3053]希望
查看>>
hdu1272 小希的迷宫 (并查集)
查看>>
POJ 2785 4 Values whose Sum is 0 (二分)题解
查看>>
HDU 4417 Super Mario(主席树 区间不超过k的个数)题解
查看>>
20111226
查看>>
RxJava的使用
查看>>
[Node.js]DNS模块
查看>>
vi 或 vim 常用命令(简单够用了)
查看>>