1

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

我的交换功能如下...

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

我把这个函数称为这样的,

this->swapSpriteTexture(aSprite, m_TextureSlot);

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

m_TextureSlot 是

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

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

4

1 回答 1

1

我的错...

我改变这样的功能,

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

我调用了交换函数。

this->swapSpriteTexture(aSprite, &m_TextureSlot);

然后,它的效果非常好。:)

于 2012-08-23T06:00:29.370 回答