在Cocos2d-x中多次交换背景图像

时间:2015-05-31 08:11:53

标签: c++11 cocos2d-x

我正在使用Cocos2d-x制作一个基于故事的2D游戏,我需要切换背景精灵,这是一个精灵,它在游戏过程中多次采用帧的整个分辨率。我怎么能这样做?

我认为我应该在开始时将所有背景图像加载到某种纹理缓存中然后交换它们,但我真的不知道该怎么做。

我非常感谢Cocos2d-x 3.6的一些代码片段。

1 个答案:

答案 0 :(得分:0)

我找到了一个有效的解决方案。这是为了将来的参考:

    void GameLayer::setNewSpriteTexture(Sprite* sprite, Texture2D* newTex) {

    Rect rect = Rect::ZERO;
    rect.size = newTex->getContentSize();
    sprite->setTexture(newTex);
    sprite->setTextureRect(rect, false, rect.size); 
}

并且每个使用过的纹理都必须预先加载到纹理缓存中,如下所示:

_menuTexture = Director::getInstance()->getTextureCache()->addImage("menu.png");