cocos2d-x-3.16 使用csb遇到问题

在cocos2d-x-3.16版本使用csb加载界面,对于子控件进行clone操作时,如果子控件中有旋转(Rotation)操作,会在底层报错,原因显示:

CCNode#rotation. RotationX != RotationY. Don't know which one to return

原断言为:

CCASSERT(_rotationZ_X == _rotationZ_Y, "CCNode#rotation. RotationX != RotationY. Don't know which one to return");

跟踪代码发现使用clone后的旋转控件RotationX和RotationY属性不相等,有0.0001大小误差,此处无需使用精确浮点数比较误差,可能是csb底层控件bug,解决办法如下:

CCNode.cpp
/// rotation getter
float Node::getRotation() const
{
    CCASSERT((std::abs(_rotationZ_X - _rotationZ_Y) < 0.001f), "CCNode#rotation. RotationX != RotationY. Don't know which one to return");
    return _rotationZ_X;
}

猜你喜欢

转载自blog.csdn.net/zhenyu5211314/article/details/81632273