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

1、plist制作:

本人使用工具TexturePacker,其中有对应cocos2dx引擎的默认打包方案,用起来是得心应手。
打开工具后会看到上方标题中有个Add smart folder

做程序的,这点简单的英文肯定是要能看懂的,就把你相应的帧动画的文件选中添加进去就可以了,加进去后,会生成相应的预览图,再点击右上的Publish sprite sheet

自己选择导出目录,就能在对应目录看到导出的plist文件和预览图了,加入到工程中就可以了。


2、帧动画:

废话不多说,先上代码。

  1. local spriteFrame = cc.SpriteFrameCache:getInstance( )  
  2. spriteFrame:addSpriteFrames( "speak.plist" )  
  3.   
  4. local spriteTest = cc.Sprite:createWithSpriteFrameName("shuohua00.png")  
  5. spriteTest:setAnchorPoint( 0.5, 0 )  
  6. spriteTest:setPosition( cc.p( display.cx, display.cy/4 ) )  
  7. self:addChild( spriteTest )  
  8.   
  9. local animation = cc.Animation:create()  
  10. for i=1, 13 do  
  11.     -- local frameName = string.format( "shuohua%02d.png", i )  
  12.     local blinkFrame = spriteFrame:getSpriteFrame( string.format( "shuohua%02d.png", i ) )  
  13.     animation:addSpriteFrame( blinkFrame )  
  14. end  
  15. animation:setDelayPerUnit( 0.1 )--设置每帧的播放间隔  
  16. animation:setRestoreOriginalFrame( true )--设置播放完成后是否回归最初状态  
  17. local action = cc.Animate:create(animation)  
  18. spriteTest:runAction( cc.RepeatForever:create( action ) )

将导出的plist文件加载进项目纹理缓存中,文件中集合了帧动画的每帧对应的图片对象,图片命名为有规则的序列。本文是播放一个说话动画,所以图片命名为shuohua00.png、shuohua01.png…

通过spriteFrameCache来将plist纹理加入缓存,再通过纹理创建一个默认的精灵状态。

创建一个animation对象用来存放所有的动画纹理,相当于一个队列,最终的播放顺序会按照animation的添加顺序播放。所以此步很关键,也就是图片的1、2、3、4…命名很关键。

设置好播放间隔之后就差调用播放了,播放动画和播放组合动作一样都是使用runAction,所以将animation对象转换为一个animat动画对象。就可以直接播放了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值