cocos2dx3.3 绘制图形没有调用draw方法,这是为什么呀

我的cocos2d-x版本号为3.3
开发环境为VS2013
为什么没有调用draw方法???
Rect.h文件的内容为:
#include
#include “cocos2d.h”
USING_NS_CC;
using namespace std;
namespace testDraw{
class Rect :public Node{
public:
virtual bool init();
virtual void draw();
CREATE_FUNC(Rect);
};
}

Rect.cpp文件的内容为:
#include “Rect.h”
namespace testDraw{
bool Rect::init(){
return true;
}
//没有调用这个函数,这是为什么呀
void Rect::draw(){
CCLOG(“test draw function”);//这是进行测试,判断是否调用了draw()函数
//设置画笔的颜色
DrawPrimitives::setDrawColor4B(255,0,0,255);
//绘制具体的图形
DrawPrimitives::drawRect(Vec2(0,0),Vec2(100,100));
}
}
HelloWorld.cpp文件init()函数里面的内容
HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
//如何使用绘图API
auto rect = testDraw::Rect::create();
rect->setPosition(Vec2(100,100));
this->addChild(rect);
return true;
}

求各位大神指点一二

/**
 * Override this method to draw your own node.
 * The following GL states will be enabled by default:
 * - `glEnableClientState(GL_VERTEX_ARRAY);`
 * - `glEnableClientState(GL_COLOR_ARRAY);`
 * - `glEnableClientState(GL_TEXTURE_COORD_ARRAY);`
 * - `glEnable(GL_TEXTURE_2D);`
 * AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE
 * But if you enable any other GL state, you should disable it after drawing your node.
 */
virtual void draw(Renderer *renderer, const Mat4& transform, uint32_t flags);
virtual void draw() final;

你怎么重写final的?

那怎么修改呢?

cocos2d-x3.3有木有其他的方法进行绘制图形的操作??????????

使用DrawNode试试

添加CustomCommand到渲染队列里面

我是用的cocos2d-x v3.9
class Node中定义了
virtual void draw(Renderer *renderer, const Mat4& transform, uint32_t flags);
virtual void draw() final;
在v3.9中Node::draw()被定义为final,也就是不允许再被override了,所以想要添加自己的绘制命令的话,需要override
virtual void draw(Renderer *renderer, const Mat4& transform, uint32_t flags);

楼主可以看看3.3版本中class Node中这两个函数是如何定义的。
同时可以尝试override
virtual void draw(Renderer *renderer, const Mat4& transform, uint32_t flags);
试一试。