Cocos2dx 4.0加载CocosStudio动画问题

经过断点尝试,发现官方竟然没设初始化类RenderCommand中的_pipelineDescriptor变量,所以导致这个问题。我解决的办法经过测试是可以的用的,就不知道有没有问题,毕竟我也没用4.0做项目。

//搜索CCRenderCommand.h  public中添加如下代码
inline void setProgramState(backend::ProgramState* state) { _pipelineDescriptor.programState = state; }


//再次搜索CCSkin.cpp,找到下列draw函数
void Skin::draw(Renderer *renderer, const Mat4 &/*transform*/, uint32_t flags)
{
    auto mv = Director::getInstance()->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);

    // TODO: implement z order
    _quadCommand.setProgramState(getProgramState());     //添加这句代码就可以了
    _quadCommand.init(_globalZOrder, 
        _texture, 
        _blendFunc, 
        &_quad, 
        1,
        mv, 
        flags);

    renderer->addCommand(&_quadCommand);
}