想预加载一下png序列帧。。。但是花屏了。。。以前不预加载时候没事儿……求大神们看看咋回事!
#include “StageScene.h”#include "IOSPlayVedio.h"using namespace std;
CCSpriteFrameCache* LightCache = CCSpriteFrameCache::sharedSpriteFrameCache();CCSpriteFrameCache* FogCache = CCSpriteFrameCache::sharedSpriteFrameCache();CCSpriteFrameCache* StageCache = CCSpriteFrameCache::sharedSpriteFrameCache();CCScene* StageScene::scene(){ CCScene scene = CCScene::create(); StageScene layer = StageScene::create(); scene->addChild(layer); return scene;}
bool StageScene::init(){ if (!CCLayer::init()) { return false; }
LightCache->addSpriteFramesWithFile(“light.plist”, “light_85.png”); FogCache->addSpriteFramesWithFile(“fog.plist”, “fog_85.png”); StageCache->addSpriteFramesWithFile(“stage.plist”, “stage_85.png”); playVideo();
schedule(schedule_selector(StageScene::AfterVideo),7.0); return true;}
void StageScene::AfterVideo(float dt){ CCTexture2D::PVRImagesHavePremultipliedAlpha(true); CCSize size = CCDirector::sharedDirector()->getWinSize();
//添加背景动画 //CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(“stage.plist”); CCSprite stageBg = CCSprite::createWithSpriteFrameName(“stage_85.png”); stageBg->setPosition(ccp(size.width/2,size.height/2)); addChild(stageBg,0); CCArray stageAnimationFrames = CCArray::createWithCapacity(12); char Stagestr = {0}; for( int i = 85 ; i < 97 ; i++) { sprintf(Stagestr, “stage_%i.png”, i); CCSpriteFrame* Stageframe = StageCache->spriteFrameByName(Stagestr); stageAnimationFrames->addObject(Stageframe); } CCAnimation* StageAnimation = CCAnimation::createWithSpriteFrames(stageAnimationFrames, 0.08); CCAnimate* StagAnimate = CCAnimate::create(StageAnimation); CCFiniteTimeAction* StageAction = CCSequence::create(StagAnimate,StagAnimate->reverse(),NULL); CCRepeat* StageRepeat = CCRepeat::create(StageAction, 200); StageRepeat->retain(); stageBg->runAction(StageRepeat);
//添加烟雾动画 //CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("fog.plist"); CCSprite* fogBg = CCSprite::createWithSpriteFrameName("fog_85.png"); fogBg->setPosition(ccp(size.width/2,size.height/2)); addChild(fogBg,2); CCArray* FogAnimationFrames = CCArray::createWithCapacity(24); char Fogstr = {0}; for( int i = 85 ; i < 109 ; i++) { sprintf(Fogstr, "fog_%i.png", i); CCSpriteFrame* Fogframe = FogCache->spriteFrameByName(Fogstr); FogAnimationFrames->addObject(Fogframe); } CCAnimation* Foganimation = CCAnimation::createWithSpriteFrames(FogAnimationFrames, 0.08); fogBg->runAction(CCAnimate::create(Foganimation));
//添加灯光动画 //CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("light.plist"); CCSprite* light = CCSprite::createWithSpriteFrameName("light_85.png"); light->setPosition(ccp(size.width/2,size.height/2)); addChild(light,3); CCArray* LightAnimationFrames = CCArray::createWithCapacity(24); char Lightstr = {0}; for( int i = 85 ; i < 109 ; i++) { sprintf(Lightstr, "light_%i.png", i); CCSpriteFrame* Lightframe = LightCache->spriteFrameByName(Lightstr); LightAnimationFrames->addObject(Lightframe); } CCAnimation* Lightanimation = CCAnimation::createWithSpriteFrames(LightAnimationFrames, 0.08); CCAnimate* Lightanimate = CCAnimate::create(Lightanimation); CCFiniteTimeAction* LightAction = CCSequence::create(Lightanimate,Lightanimate->reverse(),NULL); CCRepeat* repeatLight = CCRepeat::create(LightAction, 100); light->runAction(repeatLight);
unschedule(schedule_selector(StageScene::AfterVideo));
}