Cocosdx-3.2 绘图api的问题~求大神解答!!

cocosdx 之前的绘图api用的是DrawPrimitives::,我在绘制一个50*50的点阵使用的方法是
for (int i = 0; i<50; i++) {
for (int j = 0; j<50; j++) {
DrawPrimitives::setDrawColor4B(rand()%256, rand()%256, rand()%256, 255);
DrawPrimitives::drawPoint(Point(i,j));
}
}
使用这个方法的效果,就是画出一个像电视机花屏的效果,帧率有60多。

在绘图api改为drawNode后,我使用的方法是
for (int i = 0; i<50; i++) {
for (int j = 0; j<50; j++) {
auto drawCircle = DrawNode::create();
drawCircle ->drawPoint(Vec2(i, j), 1, Color4F(Color4B(rand()%256, rand()%256, rand()%256, 255)));
addChild(drawCircle);
}
}
使用这种方法每帧会创建2500个实例,内存飙升几G!

请教各位大神,如果要用drawNode类实现 DrawPrimitives类画点的流畅度该怎么做???

顶一下 求解答!!!

不要沉啊~!!!没有一个懂得吗!!!!

在循环外创建drawnode,最好是init方法中,然后应该每帧之前都清除一下上次的画面。

bool mylayer::init(){
drawCircle = DrawNode::create(); // drawCircle 在定义成全局或是mylayer的成员变量吧。
addChild(drawCircle);
return true;
}
void mylayer::drawsnow(){

drawCircle.clear();
for (int i = 0; i<50; i++) {
for (int j = 0; j<50; j++) {

            drawCircle ->drawPoint(Vec2(i, j), 1, Color4F(Color4B(rand()%256, rand()%256, rand()%256, 255)));
            
        }
    }

}

我按照你的思路重写了一下,但是运行的时候main函数崩掉了 ,没有崩溃信息。

drawCircle = DrawNode::create();
drawCircle->retain(); //加行这个?