如何在cocos2dx C ++ v3.10中更改Sprite纹理?

沙希德·萨瓦(Shahid Sarwar)

我正在使用此https://github.com/qiankanglai/ImagePicker ImagePicker实用程序我正在使用以下代码来设置精灵纹理:

 void HelloWorldScene::didFinishPickingWithResult(cocos2d::Texture2D* result)
    {
        Size visibleSize = Director::getInstance()->getVisibleSize();
        Vec2 origin = Director::getInstance()->getVisibleOrigin();
        if(result == nullptr){
        return;
        }
       // sprite->removeFromParentAndCleanup(true);

        ClippingNode * clipper = ClippingNode::create();
        clipper->setPosition(visibleSize.width / 2, visibleSize.height / 2);
        clipper->setTag( kTagClipperNode );
        this->addChild(clipper);
        DrawNode * stencil = DrawNode::create();
        stencil->drawSolidCircle(Vec2(clipper->getBoundingBox().size.width / 2, clipper->getBoundingBox().size.height / 2), 100, 0, 200, Color4F::MAGENTA);
        clipper->setStencil(stencil);
        clipper->setInverted(false);
        auto sprite = cocos2d::Sprite::createWithTexture(result);
        sprite->setPosition( Vec2(clipper->getContentSize().width / 2, clipper->getContentSize().height / 2));
        clipper->addChild(sprite);
        this->addChild(clipper);
    }

实际上,我是从图库中获取Texture 2D对象并将其设置在Sprite上的。这段代码很好用,但是如果我想替换精灵纹理,则再次执行相同的代码,并添加一个新的裁剪节点对象,并且在前一个对象上添加一个新的精灵...

我想知道如何解决这个问题?从图库中选择新照片时,我想用新的精灵纹理替换旧的精灵纹理。

提前致谢!

用户名

Sprite具有setTexture在cocos2dx 3.0中称为成员函数如果您在场景中保留了一个指向精灵对象的成员指针,则可以将函数更新为以下内容:

void HelloWorldScene::didFinishPickingWithResult(cocos2d::Texture2D* result)
    {
        if(result == nullptr){
           return;
        }
        if(m_sprite)
        {

           m_sprite->setTexture(result);
        }
        else 
        {
           Size visibleSize = Director::getInstance()->getVisibleSize();
           Vec2 origin = Director::getInstance()->getVisibleOrigin();
           ClippingNode * clipper = ClippingNode::create();
           clipper->setPosition(visibleSize.width / 2, visibleSize.height / 2);
           clipper->setTag( kTagClipperNode );
           this->addChild(clipper);
           DrawNode * stencil = DrawNode::create();
           stencil->drawSolidCircle(Vec2(clipper->getBoundingBox().size.width / 2, clipper->getBoundingBox().size.height / 2), 100, 0, 200, Color4F::MAGENTA);
           clipper->setStencil(stencil);
           clipper->setInverted(false);
           m_sprite = cocos2d::Sprite::createWithTexture(result);
           m_sprite->setPosition( Vec2(clipper->getContentSize().width / 2,clipper->getContentSize().height / 2));
           clipper->addChild(m_sprite);
           this->addChild(clipper);
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在cocos2dx 3中摇动屏幕?

来自分类Dev

如何在C ++中的Cocos2dx中为iOS游戏制作滑动菜单

来自分类Dev

使用Physics的碰撞检测在cocos2dx v3中不起作用

来自分类Dev

在Cocos2dx v3中使用lambda进行scheduleOnce

来自分类Dev

如何在cocos2dx中更新openssl?

来自分类Dev

如何在cocos2dx中绘制任意曲线

来自分类Dev

如何在cocos2dx中复制动作

来自分类Dev

如何在cocos2dx中绘制圆

来自分类Dev

如何使用C ++在cocos2dx中的游戏中创建计时器

来自分类Dev

Cocos2dx 3.x按钮精灵[C ++]

来自分类Dev

Sprite如何在cocos2dx中以编程方式进行修剪?

来自分类Dev

如何使用C ++在Cocos2dx iOS中为不同分辨率选择资源

来自分类Dev

如何在Cocos2dx 3.1中添加触摸事件监听器?

来自分类Dev

如何在cocos2dx 3.0中调用callfunc函数

来自分类Dev

如何在cocos2dx 3.0 beta中创建项目?

来自分类Dev

如何在cocos2dx中创建多边形以显示运行编号

来自分类Dev

如何在cocos2dx中打印二维数组

来自分类Dev

如何计算Cocos2dx中的毫秒数?

来自分类Dev

Cocos2dx C ++ Windows 8.1 Universal App中的PubCenter / Admob

来自分类Dev

在Cocos2dx v3 iOS中集成Admob

来自分类Dev

如何在Cocos2d V3中模态或显示viewController?

来自分类Dev

如何在Cocos2D V3上的CCScene中检测触摸?

来自分类Dev

如何在Cocos2d v3中设置CCTextField

来自分类Dev

如何在Cocos2d v3中获得某种类型的子代

来自分类Dev

如何在Cocos2D V3上的CCScene中检测触摸?

来自分类Dev

如何在Cocos2D-JS v3中收听移动Back事件?

来自分类Dev

无法插入cocos2dx中的sqlite3数据库

来自分类Dev

cocos2dx中的覆盖功能

来自分类Dev

在Cocos2dx 3.0中的Sprite上设置TexParams

Related 相关文章

热门标签

归档