DrawNode无效

我想在背景话一个框,
用了DrawPrimitives和DrawNode的drawLine方法都无效,我的场景是黑色,画了条白线可是没有显示白线,需要设置什么吗?

bool GuangScene::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}

m_sizeVisible = Director::getInstance()->getVisibleSize();

int ii=0;
m_iStartRow=0;    //入水的第一行
m_iStartCol=4;    //入水的第一列
float fx=0;
float fy=0;
fx=0;
fy=14+(5-2)*80;
auto spShui = Sprite::create("400.jpg");
spShui->setAnchorPoint(Vec2(0,0));
spShui->setPosition(fx,fy);
//addChild(spShui);
m_iOneTianWidth = 80;
m_iOneTianHeight = 80;
fx=spShui->getContentSize().width;
fy=0;
std::string strtemp="";
int jj=0;
int rr=0;
m_iMaxRows=8;
m_iMaxCols=8;
//计算灌溉的放置区域
m_fTianLeft = spShui->getContentSize().width;
m_fTianBottom = 0;
m_fTianTop = m_fTianBottom + m_iOneTianHeight * m_iMaxCols;
m_fTianRight = m_fTianLeft + m_iOneTianWidth * m_iMaxRows;
//画底框,郁闷
auto spDraw = Sprite::create();
spDraw->setAnchorPoint(Vec2(0,0));
spDraw->setContentSize(Size(m_fTianRight-m_fTianLeft,m_fTianTop-m_fTianBottom));
spDraw->setPosition(m_fTianLeft,m_fTianBottom);
auto lcDraw = Layer::create();
auto dnMain = DrawNode::create();
lcDraw->addChild(dnMain);
dnMain->drawLine(Vec2(m_fTianLeft,m_fTianBottom),Vec2(m_fTianRight,m_fTianTop),Color4F(255,255,255,255));
dnMain->drawSegment(Vec2(m_fTianLeft,m_fTianBottom),Vec2(m_fTianRight,m_fTianTop),3,Color4F(255,255,255,255));
spDraw->addChild(lcDraw);
addChild(spDraw);
/*
//这样也无效
auto dnMain = DrawNode::create();
dnMain->setAnchorPoint(Vec2(0,0));
dnMain->setContentSize(Size(m_fTianRight-m_fTianLeft,m_fTianTop-m_fTianBottom));
dnMain->setPosition(m_fTianLeft,m_fTianBottom);
addChild(dnMain);
dnMain->drawLine(Vec2(m_fTianLeft,m_fTianBottom),Vec2(m_fTianRight,m_fTianTop),Color4F(255,255,255,255));
dnMain->drawSegment(Vec2(m_fTianLeft,m_fTianBottom),Vec2(m_fTianRight,m_fTianTop),3,Color4F(255,255,255,255));
//*/

新建另外一个工程,就只有DrawNode也不成,是我用法有问题吗?

bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}

auto drnode = DrawNode::create();
drnode->drawLine(Vec2(10,10),Vec2(100,10),Color4F(128,128,128,255));
addChild(drnode);


return true;

}

运行后界面黑黑的,啥也没有

自己给自己做记录,发现第一个画图函数如果是用drawPoint、drawLine都是看不到,
如果先用drawDot随便画就可以看看,我不知道是不是DrawNode的一个bug,难道大家都没有这问题(还是大家根本都不用DrawNode)
我用的是cocos2d-x v3.5
具体代码如下:

以下这样写,会什么都看不到,就一个黑黑的界面
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}

auto drnode = DrawNode::create();
drnode->drawLine(Vec2(10,10),Vec2(100,10),Color4F(128,128,128,255));
addChild(drnode);

return true;

}

但如果改成这样写就可以看到
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}

auto drnode = DrawNode::create();

drnode ->drawDot(Vec2(50,50), 10, Color4F::RED);
drnode->drawLine(Vec2(10,10),Vec2(100,10),Color4F(128,128,128,255));
addChild(drnode);

return true;

}

我也碰到这个问题了!怎么解决?一定要画一次创建一个drawnode吗?