- Director::mainLoop() 调用 Director::drawScene
- Director::drawScene() 调用 Scene::visit
- Scene::visit去遍历所有儿子节点,在儿子节点的visit函数中调用虚函数draw实现绘制
- 精灵类:重载了Node::draw,在精灵类的draw函数里,它把自己的绘制包装成一个渲染命令,调用Renderer::addCommand函数,将命令加入到命令队列
- 最后由Randerer::render函数进行绘制,这个函数由另外一个线程调用,这样可以提高效率
Node的visit和draw函数都是虚函数,可以通过重写虚函数来实现不同的绘制,重写visit会影响整个层(包括子节点),但是重写draw只影响自己
详细的流程可以看以下博文