在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 ......
答案 0 :(得分:1)
我的错误......
我改变了这个函数,
void GameScene::swapSpriteTexture(CCSprite *a, CCTexture2D **b)
{
CCTexture2D *tmp = a->getTexture();
a->setTexture(*b);
*b = tmp;
}
我调用交换功能。
this->swapSpriteTexture(aSprite, &m_TextureSlot);
然后,它的作品非常棒。 :)