cocos: 出现类似RotationX!=RotationY的问题
在对一个csb的Panel执行copy时发现下面如图的错误,让人很难受。
因为在cocos studio里面的新增的ImageView导致的这个问题,就查cocos源码发现在Node:getRotation中出现问题
怀疑_rotationZ_X和_rotationZ_Y是浮点数,直接用==比较会出问题。
通过修改cocos studio里面这个imageView的旋转角度不一样,确实会出现问题
但奇怪的是通过旋转得到的旋转角度一样,但是还是会出现奔溃的现象。只能继续查源码了
通过加断点,发现value的值并不是我们cocos studio里面旋转得到的值,它们的值是精确到小数点后4位,而cocos studio只显示到小数点后两位,我们有理由判断是cocos studio的缺陷,导致只显示两位小数,后面的两位没显示而已。
通过尝试手动输入到小数点四位以后,例如:-8.2701(但还是显示-8.27,这个没关系),重新发布出来,ok, 解决问题。
另:
通过cocos-2dx源码去加载csd并转成csb,然后就可以通过断点看旋转角度。
1.在cocos2d-x-3.16\cocos2d-x-3.16\build目录下打开cocos2d-win32.sln
2.编译
3.选择cpp-empty-test这个空工程,打开HelloWorldScene.cpp,在HelloWorld::init()中输入如下:
并在前面加入需要包含的头文件。
serializeFlatBuffersWithXMLFile这个接口就是要把csd文件按格式转成csb文件的过程,在这个过程中会走到之前说的那个断点。