【问题标题】:Swap background image multiple times in Cocos2d-x在 Cocos2d-x 中多次交换背景图片
【发布时间】:2015-05-31 08:11:53
【问题描述】:

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

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

非常感谢 Cocos2d-x 3.6 的一些代码 sn-ps。

【问题讨论】:

    标签: c++11 cocos2d-x


    【解决方案1】:

    我找到了一个可行的解决方案。供日后参考:

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

    【讨论】:

    • 如果图片比较大,建议考虑使用TextureCache->addImageAsync
    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多