我正在使用 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?
}
从读取头文件和源文件看来,这可能是将渲染命令直接发送到渲染器的某种方式,对吗?
我应该使用这种方法进行自定义绘图吗?draw
和有什么区别onDraw
?
编辑:
正如@Pedro Soares 所提到的,自从 Cocos2D-X 3.0 以来,您不能再覆盖draw()
了。你必须draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
改用。