動畫的主題是14張圖片,一般來講需要找比較相似的圖片連續的播放,以達
到一種迷惑人眼的效果,下面這段程序主要基於 Cocos 2d 遊戲開發平臺
實現,中間涉及到了 聲音播放引擎, 以及一些 圖層 精靈的處理 。
#include "HelloWorldScene.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSprite* bk = CCSprite::create("1.jpg");
addChild(bk);
bk->setPosition(ccp(winSize.width / 2, winSize.height / 2));
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("吻別.mp3",true);
Vector<SpriteFrame *> aniframe;
CCSprite *sprite;
char str[20];
for(int i = 1; i <= 14; i++)
{
sprintf(str,"%d.jpg",i);
SpriteFrame *frame = SpriteFrame::create(str,CCRectMake(0,0,639,423));
if(i == 1)
{
sprite = CCSprite::createWithSpriteFrame(frame);
sprite->setPosition(ccp(winSize.width / 2, winSize.height / 2));
addChild(sprite);
}
aniframe.insert(NULL,frame);
}
for(int i = 14; i >= 1; i--)
{
sprintf(str,"%d.jpg",i);
CCSpriteFrame *frame = CCSpriteFrame::create(str,CCRectMake(0,0,639,423));
if(i == 1)
{
sprite = CCSprite::createWithSpriteFrame(frame);
sprite->setPosition(ccp(winSize.width / 2, winSize.height / 2));
addChild(sprite);
}
aniframe.insert(NULL,frame);
}
CCAnimation *animation = CCAnimation::createWithSpriteFrames(aniframe,0.2f);
CCAnimate *animate = CCAnimate::create(animation);
sprite ->runAction(CCRepeatForever::create(animate));
return true;
}
待續未完。。。。。。