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