cocos2d-x 3.0 帧播放 (帧动画循环播放)

原创 2013年12月06日 10:01:43

nb原创, 欢迎转载,转载请在明显处注明! Thx~

原文地址:http://blog.csdn.net/nilreb_nb/article/details/17161339


之前都是用2.0开发,用2.0使用帧播放需要用到CCMutableArray这个容器数组,但是3.0里面已经没有这个数组了,所以我去查看了testCpp里面的Animation源码,这边说一下3.0要怎么实现帧播放。

    

直接上代码了

(1)手动实现帧播

auto animation = Animation::create(); 
	char str[64] = {0};
	for(int i=0;i<18;i++){//我一共有18张图片,放在test1文件夹
		sprintf(str,"test1/%d.png",i+1);
		animation->addSpriteFrameWithFileName(str);
	}
	animation->setDelayPerUnit(3.0f / 18.0f);//这里表示一共播放3秒,然后18张图片
        animation->setRestoreOriginalFrame(true);
	auto action = Animate::create(animation);
	auto run1 = CCSprite::create();//创建一个sprite让它跑起来
	run1->setPosition(ccp(contsize.width/2,contsize.height/10*6));
	this->addChild(run1,12);
        run1->runAction(Sequence::create(action, NULL));
auto animation = Animation::create();        Animation* animation = Animation::create();

 这两种定义是一个意思,我习惯用auto,方便省事。


另外如果想实现循环播放,也简单,用CCRepeat(有限)和CCRepeatForever(无限循环)

auto Call = CCCallFuncND::create(this,callfuncND_selector(CombatSystemLayer::repeatFunc),pdata);
	auto run = CCSprite::create();
	this->addChild(run,1);
	auto seq3 = Sequence::create(Call,DelayTime::create(8.0f),NULL);//一组动作序列的集合
	//CCRepeatForever* repeat=CCRepeatForever::create(seq1);//无限循环
	auto rep2 = CCRepeat::create(seq3,5);//把序列seq3循环播放5次
	auto seq4 = Sequence::create(DelayTime::create(3.5f), rep2, NULL);


(2)文件实现帧播放(这是testCpp的源码)

AnimationCache *cache = AnimationCache::getInstance();
    cache->addAnimationsWithFile("animations/animations-2.plist");//加载plist文件
    Animation *animation2 = cache->animationByName("dance_1");

    Animate* action2 = Animate::create(animation2);
    _tamara->runAction(Sequence::create(action2, action2->reverse(), NULL));















                    

Cocos2d-x Lua中实例:帧动画使用

下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画。 ...
  • tonny_guan
  • tonny_guan
  • 2015年05月24日 19:11
  • 11721

cocos2dx 几个精灵按照顺序播放动画解决方法

我先描述一下这个问题: 拿之前做的卡牌游戏来说,如果一方场上有3张牌,那么肯定要以一种顺序来播放攻击动画,我是以从左到右的方式。 我的解决方式是向每张牌都传递一个延时参数,然后在runAc...
  • qq369846642
  • qq369846642
  • 2015年07月03日 14:38
  • 1738

cocos2d+lua实现帧动画播放

使用Cocos2d播放帧动画的方法有两种: 先来介绍一下流程: 1.得到动画的每一帧的数组FrameArray 2.将帧动画数组包装成Animation对象 3.将Animatio...
  • Cui860
  • Cui860
  • 2014年10月30日 10:59
  • 482

cocos2d-x帧动画播放器

  • 2013年03月26日 11:07
  • 3KB
  • 下载

cocos2dx coscostudio 动画连续播放

目前项目中碰到需要连续播放动画的功能(技能combo) 在cocosstudio 里面做了一连串数字显示的动画 播放的时候发现获取到的值是一个比较大的数(例如10),显示得从动画1显示到10 ...
  • harryptter
  • harryptter
  • 2015年06月05日 18:19
  • 1450

四、cocos2dx动画Animation介绍

一、帧动画 你可以通过一系列图片文件,像如下这样,创建一个动画: CCAnimation *animation = CCAnimation::create(); //从本地文件系统中加载图片文件到C...
  • qinning199
  • qinning199
  • 2013年09月10日 00:12
  • 13386

cocos2d-x 播放帧动画

auto sp= Sprite::create();         sp->setPosition(500, 500);         this->addChild(sp);         a...
  • SebastianMichaelis
  • SebastianMichaelis
  • 2015年08月31日 14:21
  • 496

cocos2dx-js 帧动画的播放方法

ctor: var load = ccs.load(res.Ani_json); var mainNode = load.node; this.addChild(mainNode); // 对应帧...
  • xiuzhentianting
  • xiuzhentianting
  • 2016年01月19日 17:34
  • 783

cocos studio 中 添加了动画节点, 在程序中直接用该节点播放动画

local function  aniBack(frame)          -- body         if(frame == nil) then  return end;     ...
  • u014660247
  • u014660247
  • 2017年05月08日 12:14
  • 946

【Cocos2dx-lua 3.11.1】plist制作、播放帧动画

plist帧动画相关内容总结。
  • lannan91
  • lannan91
  • 2017年03月01日 20:43
  • 1800
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x 3.0 帧播放 (帧动画循环播放)
举报原因:
原因补充:

(最多只允许输入30个字)