【发布时间】:2015-05-31 08:11:53
【问题描述】:
我正在使用 Cocos2d-x 制作一个基于故事的 2D 游戏,我需要在游戏过程中多次切换背景精灵,这是一个占用整个帧分辨率的精灵。我该怎么做??
我认为我应该在开始时将所有背景图像加载到某种纹理缓存中,然后交换它们,但我真的不知道该怎么做。
非常感谢 Cocos2d-x 3.6 的一些代码 sn-ps。
【问题讨论】:
我正在使用 Cocos2d-x 制作一个基于故事的 2D 游戏,我需要在游戏过程中多次切换背景精灵,这是一个占用整个帧分辨率的精灵。我该怎么做??
我认为我应该在开始时将所有背景图像加载到某种纹理缓存中,然后交换它们,但我真的不知道该怎么做。
非常感谢 Cocos2d-x 3.6 的一些代码 sn-ps。
【问题讨论】:
我找到了一个可行的解决方案。供日后参考:
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");
【讨论】: