cocoss2-x学习之动画初步

本文详细介绍了如何在Cocos2d-x中实现逐帧动画,包括动画帧集合的建立、逐帧动画CCSpriteFrame的生成、CCAnimation的创建及CCAnimate的定义与执行过程。

一,建立动画帧集合,即导入贴图文件.png和导入贴图文件的配置文件.plist,如下例所示

 

\

 

首先是获得cache,然后是通过addSpriteFrameWithFile加入贴图文件.png和导入贴图文件的配置文件.plist,第一个参数为.plist的路径,第二个参数为.png文件的路径,一个参数的函数的png文件的文件名与.plist文件相同。也就是说第一个addSpriteFrameWithFile的贴图文件的路径为animations/grossini.png

 

关于plist文件,网上有一些工具可以生成,当然你可以使用Zwoptex(需付费),其实只是生成一个配置文件而已,你也可以自己编写这个小工具(本人打算尝试一下),plist文件的结构很像xml等文件,编写一个这样的工具也不是难事。当然,网上也有一些这样的工具。

 

二,生成逐帧动画CCSpriteFrame,见下图代码

 

\

首先通过CCMutableArray生成一个CCSpriteFrame数组,然后通过循环初始化每一帧的内容,每帧的CCSpriteFrame通过上面定义好的cache获得。

 

三,生成CCAnimation

 这个步骤很简单,就是通过CCSpriteFrame数组生成CCAnimation

 

CCAnimation *animation = CCAnimation::animationWithFrames(animFrames, 0.1f)//第二个参数是每一帧的延迟时间

 

当有不止一个动画时,可将这里的animation放入Cache中,并起一个名字:

CCAnimationCache *pAc = CCAnimationCache::shareAnimationCache();

pAc->addAnimation(animation, animationName);

 

用到的时候取出:

CCAnimation animation = CCAnimationCache::shareAnimationCache()->animationByName(animationName);

 

四,定义并执行CCAnimate

 到这一步,终于可以定义动画了,第一个参数是CCAnimation,第二个参数如果置为true那么将在动画结束回到原始帧,否则将不会回到原始帧。如下例

CCAnimate *pAnimate = CCAnimate::actionWithAnimation(animation, false);

 

CCAction *pAction = CCRepeatForever::actionWithAction( pAnimate );

pSprite.runAction(pAction);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值