cocos2d-x-3.0 draw vs onDraw

我正在使用cocos2d-x v3.0并且在一些测试项目中我通过重写Node的draw方法来做一些自定义绘图,但是在DrawPrimitives示例中他们提供了类似这样的事情:
void DrawPrimitivesTest::draw()
{
    _customCommand.init(_globalZOrder);
    _customCommand.func = CC_CALLBACK_0(DrawPrimitivesTest::onDraw,this);
    Director::getInstance()->getRenderer()->addCommand(&_customCommand);
}

void DrawPrimitivesTest::onDraw()
{
    // drawing code here,why?
}

从读取头文件和源文件看起来这可能是将渲染命令直接发送到渲染器的某种方式,这是正确的吗?

我应该使用这种方法来进行自定义绘图吗?绘制onDraw有什么区别?

编辑:

正如@Pedro Soares所提到的,因为Cocos2D-X 3.0你不能再覆盖draw()了.你必须使用draw(Renderer * renderer,const kmMat4& transform,bool transformUpdated)代替.

将来,cocos2d-x 3.x渲染器将使用命令池进行多线程处理.

通过visit方法调用draw方法,创建新命令.当命令池执行命令时,将调用onDraw.此时,命令在单线程中执行,但在重载的onDraw方法中,您应该假设它将在另一个线程中调用以简化将来的迁移.

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...