1

我正在尝试使用 CCRenderTexture 绘制一个简单的背景。

我创建了一个 CCRenderTexture 指针(使用宽度、ht、像素格式初始化)

用一些颜色清除它。

添加到节点,

为节点添加标签

==================================================== ========================================= 当我运行它时,我看到的只是黑屏,上面有你好世界的标签。

那么纹理在哪里呢?

bool HelloWorld::init()
{
    bool bRet = false;
    do 
    {
    //////////////////////////////////////////////////////////////////////////
    // super init first
    //////////////////////////////////////////////////////////////////////////

    CC_BREAK_IF(! CCLayer::init());

    //////////////////////////////////////////////////////////////////////////
    // add your codes below...
    //////////////////////////////////////////////////////////////////////////

    // 2. Add a label shows "Hello World".

    // Create a label and initialize with string "Hello World".
    CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World", "Thonburi", 64);
    CC_BREAK_IF(! pLabel);

    // Get window size and place the label upper. 
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    pLabel->setPosition(ccp(size.width / 2, size.height - 20));

    // Add the label to HelloWorld layer as a child layer.
    this->addChild(pLabel, 1);

    CCRenderTexture *rt = CCRenderTexture::renderTextureWithWidthAndHeight(120, 120, kCCTexture2DPixelFormat_RGBA4444);

    rt->clear(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1());

    rt->setPosition(ccp(size.width/3, size.height/3));

    this->addChild(rt, 0);

    bRet = true;
} while (0);

return bRet;
}
4

2 回答 2

0

这个 CCRenderTexture 教程适用于 Cocos2D iPhone,但它可能会给你一些想法。一般原则是一样的。例如,您应该尝试从该渲染纹理创建一个单独的精灵,并将该精灵添加为子精灵。

于 2011-12-10T22:21:45.943 回答
0

我有这个代码:

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

    auto visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();


    RenderTexture *rt = RenderTexture::create(120, 120, kCCTexture2DPixelFormat_RGBA4444);
    rt->clear(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1());
    rt->setPosition(ccp(visibleSize.width/3, visibleSize.height/3));

    this->addChild(rt, 0);
    return true;
}

这段代码生成了这个

在此处输入图像描述

我没有看帖子的日期。我希望这对其他人有帮助。

于 2019-12-04T18:39:24.270 回答