cocos 2d 简单动画实现

来源:互联网 发布:中国联通拨号软件 编辑:程序博客网 时间:2024/05/16 01:47
动画的主题是14张图片,一般来讲需要找比较相似的图片连续的播放,以达到一种迷惑人眼的效果,下面这段程序主要基于 Cocos 2d 游戏开发平台实现,中间涉及到了 声音播放引擎, 以及一些 图层 精灵的处理 。
#include "HelloWorldScene.h"USING_NS_CC;Scene* HelloWorld::createScene(){    // 'scene' is an autorelease object    auto scene = Scene::create();    // 'layer' is an autorelease object    auto layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}// on "init" you need to initialize your instancebool HelloWorld::init(){    //////////////////////////////    // 1. super init first    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");// 注意此处的文件需放到 项目的Resource 目录下    addChild(bk);    bk->setPosition(ccp(winSize.width / 2, winSize.height / 2));    //添加背景音乐    CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("吻别.mp3",true);    Vector<SpriteFrame *> aniframe;// 使用一个 Vector 存放 SpriteFrame 指针    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);// 没0.2s切换一次    // 将动画的实体放到一个动画中去    CCAnimate *animate = CCAnimate::create(animation);    // 执行动画    sprite ->runAction(CCRepeatForever::create(animate));    return true;}

待续未完。。。。。。

0 0