动画的主题是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",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,frame); } // 生成一个动画实体,并将上面添加的图片放入其中 CCAnimation *animation = CCAnimation::createWithSpriteFrames(aniframe,0.2f);// 没0.2s切换一次 // 将动画的实体放到一个动画中去 CCAnimate *animate = CCAnimate::create(animation); // 执行动画 sprite ->runAction(CCRepeatForever::create(animate)); return true;}待续未完。。。。。。 总结
以上是内存溢出为你收集整理的cocos 2d 简单动画实现全部内容,希望文章能够帮你解决cocos 2d 简单动画实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)