如何将DrawNode与RenderTexture cocos2d-x一起使用

时间:2015-08-17 03:53:19

标签: cocos2d-x-3.0 cocos2d-x-win32

我无法使用DrawNode和RenderTexture绘制简单的线条或点。

这是我实施的方法:

  

AppDelegate.cpp

auto scene = Scene::create();
auto layer = BackgroundLayer::create();
scene->addChild(layer);

// run
director->runWithScene(scene);
  

BackgroundLayer.cpp

bool BackgroundLayer::init()
{
    if ( !LayerColor::initWithColor(Color4B::WHITE) )
    {
        return false;
    }
    auto renderTexture = RenderTexture::create(300, 200);
    renderTexture->beginWithClear(0, 0, 0, 1); // black
    auto drawPrimitive = DrawNode::create();
    drawPrimitive->retain();
    drawPrimitive->drawDot(Point(250, 250), 20, Color4F::RED);
    drawPrimitive->visit();
    renderTexture->end();
    renderTexture->retain();
    renderTexture->setPosition(this->getContentSize()/2);
    this->addChild(renderTexture, 10000);
}

我尝试使用DrawNode创建一些复杂的形状,但结果只是一个黑色的矩形停留在屏幕的中心。

我使用cocos2d-x v3.6 & VS2013编译。

1 个答案:

答案 0 :(得分:0)

auto renderTexture = RenderTexture::create(50, 50);
renderTexture->beginWithClear(0, 0, 0, 1); // black
auto drawPrimitive = DrawNode::create();
drawPrimitive->retain();
drawPrimitive->drawDot(Point(10, 10), 2, Color4F::RED);
drawPrimitive->visit();
renderTexture->end();
renderTexture->retain();
renderTexture->setPosition(SCREENSIZE.width/2,SCREENSIZE.height/2);
this->addChild(renderTexture, 10000);

试试这个会在纹理上创建红点