首页 > 代码库 > Cocos2d-X实现七夕情人节贺卡

Cocos2d-X实现七夕情人节贺卡

对于七夕情人节贺卡,我并不陌生,在学习Win32 API 的时候使用Win32 API实现过七夕情人节贺卡,这次将使用Cocos2s-X重新实现七夕情人节贺卡

想知道如何使用Win32 API 实现七夕情人节贺卡可以看我的博客:

位图的应用(七夕情人节贺卡) :http://blog.csdn.net/u010105970/article/details/19613079


言归正传,先看一下实现的效果:

技术分享


开发环境:VS2012 + Cocos2d-X2.2.3


实现思路:

准备7张png格式的图片

技术分享

创建一个有14帧的动画,按照图片名称的顺序添加7张图片,再倒序添加7张图片,最后播放动画时,设置动画的播放次数为无数次,最后在资源中添加一个WAV格式的音乐,使用SimpleAudioEngine中的播放播放音乐


程序代码:

#include "Scene.h"
#include "SimpleAudioEngine.h"

using namespace CocosDenshion;

Scene::Scene(void)
{
}


Scene::~Scene(void)
{
}


CCScene* Scene::scene()
{
    CCScene* scene = CCScene::create();

    CCLayer* layer = Scene::create();

    scene->addChild(layer);

    return scene;
}


bool Scene::init()
{
    CCLayer::init();

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    //添加背景图片
    CCSprite* bk = CCSprite::create("IMAGE_1.png");
    addChild(bk);
    bk->setPosition(ccp(winSize.width / 2, winSize.height / 2));

    //播放背景音乐
    CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("1.wav", true);

    //创建一个长度为7的集合
    CCArray *aniframe=CCArray::createWithCapacity(14); 

    //精灵
    CCSprite *sprite;

    char str[20];

    for(int i=1; i<=7;i++)
    {
        //通过下标动态创建精灵
        sprintf(str, "IMAGE_%d.png", 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->addObject(frame);
    }
    

    for(int i=7; i>=1; i--)
    {
        //通过下标动态创建精灵
        sprintf(str, "IMAGE_%d.png", i);  

        CCSpriteFrame *frame =CCSpriteFrame::create(str, CCRectMake(0,0,639,423));

        if(i == 7)
        {
            //默认添加第一帧图到界面上
            sprite =CCSprite::createWithSpriteFrame(frame);

            sprite->setPosition(ccp(winSize.width / 2, winSize.height / 2));

            addChild(sprite);

        }
        
        //将每一帧精灵动画添加到集合里面
        aniframe->addObject(frame);
    }


    //通过集合创建动画
    CCAnimation *animation=CCAnimation::createWithSpriteFrames(aniframe, 0.1f);
    CCAnimate *animate=CCAnimate::create(animation);

    //执行动画
    sprite->runAction(CCRepeatForever::create(animate));
    
    return true;
}

代码和资源的下载地址:http://download.csdn.net/detail/u010105970/8403491



Cocos2d-X实现七夕情人节贺卡