Cocos2d-x反复替换Texture

时间:2012-08-23 05:34:08

标签: textures cocos2d-x

在Cocos2d-x中, 我想重复交换精灵的纹理。

我的交换功能低于......

void GameScene::swapSpriteTexture(CCSprite *a, CCTexture2D *b)
{
    CCTexture2D *tmp = a->getTexture();
    a->setTexture(b);
    b = tmp;
}

我打电话给这个函数,

this->swapSpriteTexture(aSprite, m_TextureSlot);

当我调用swap函数时,第一次,它运行良好。
精灵的质地变化很好 但是当我再次调用该函数时,它不会改变。

m_TextureSlot是

m_TextureSlot=(CCTexture2D *)CCTextureCache::sharedTextureCache()->addImage("smile.png");

这是缓存问题吗? 任何想法PLZ ......

1 个答案:

答案 0 :(得分:1)

我的错误......

我改变了这个函数,

void GameScene::swapSpriteTexture(CCSprite *a, CCTexture2D **b)
{
    CCTexture2D *tmp = a->getTexture();
    a->setTexture(*b);
    *b = tmp;
}

我调用交换功能。

this->swapSpriteTexture(aSprite, &m_TextureSlot);

然后,它的作品非常棒。 :)