对于七夕情人节贺卡,我并不陌生,在学习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