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");

これはキャッシュの問題ですか?任意のアイデアplz ...

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 に答える