//更换精灵CCSprite的图片有两种方式。
//直接通过图片更换
//使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片。
//
auto bg = Sprite::create();
Texture2D* texture = Director::getInstance()->getTextureCache()->addImage("bg2.png");
bg->setTexture(texture);
//
//2、通过缓存帧替换
//使用setDisplayFrame(CCSpriteFrame*)函数,利用精灵帧更换精灵图片。
//
//加载plist文件到缓存
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("bg_0.plist");
//使用精灵帧,创建精灵
Sprite* bga = Sprite::createWithSpriteFrameName("bg1.png");
//更换精灵图片
SpriteFrame* frame = SpriteFrameCache::getInstance()->getSpriteFrameByName("bg2.png");
bga->setSpriteFrame(frame);
//
/*//加载合成的图片
CCSpriteBatchNode *spriteBatch=CCSpriteBatchNode::batchNodeWithFile("********.png");
this->addChild(spriteBatch);
//加载plist
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("myconfig.plist");
// 生成Sprite
CCSprite *headSprite=CCSprite::spriteWithSpriteFrameName("aaa.png");
//需要更换图片时
CCSpriteFrame *frame=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("bbb.png");
headSprite->setDisplayFrame(frame);
*/
- // 首先载入贴图集
- CCSpriteBatchNode *spriteBatch=CCSpriteBatchNode::batchNodeWithFile("snake.png");
- this->addChild(spriteBatch);
- CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("snake.plist");
- // 生成Sprite
- CCSprite *headSprite=CCSprite::spriteWithSpriteFrameName("headup.png");
- //需要更换图片时
- CCSpriteFrame *frame=CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("headleft.png");
- headSprite->setDisplayFrame(frame);
- CCSprite *my_hero = CCSprite::create("hero_a.png");
- CCTexture2D *hero_hit;
- CCSprite * temp_obj = CCSprite::create("hero_hit.png");
- hero_hit = temp_obj->getTexture();
- //改变my_hero的图片
- my_hero->stopAllActions();
- my_hero->setTexture(hero_hit);