lua 使用 spine 的一些问题

3.4 lua 使用 spine 的一些问题

分类: cocos2d-x   2321人阅读  评论(4)  收藏  举报

一、基本使用:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. self.skeletonNode = sp.SkeletonAnimation:create("sptest/spineboy.json", "sptest/spineboy.atlas", 0.3)  
  2.  self.skeletonNode:setAnimation(0, "walk", true)  
  3.    
  4.  self.skeletonNode:setMix("walk", "jump", 0.2)  
  5.  self.skeletonNode:setMix("jump", "run", 0.2)  
  6.    
  7.  self.skeletonNode:setAnimation(0, "walk", false)  
  8.  self.skeletonNode:addAnimation(0, "hit", false)  
  9.     
  10.  self.skeletonNode:setDebugBonesEnabled(true)  
  11.   
  12.  self.skeletonNode:registerSpineEventHandler(function (event)  
  13.      print(string.format("[spine] %d start: %s", event.trackIndex,event.animation))  
  14.  end, sp.EventType.ANIMATION_START)  


1、一开始,要set一个animation,第一个参数是track(后面细说)。

2、播放其他动画是用add

3、当set的动画播放完毕停止之后(非循环),再add动画是不会动的。

4、mix 就是让2个动画直接的衔接更平滑,最后一个参数是过渡时间


1、回调

正常情况下,都会对一个动画的完结做一些处理。比如我需要的就是,当动作A完成后,播放动作C。基本写法如下:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. self.skeletonNode:registerSpineEventHandler(function (event)     
  2.     if event.animation == "hit" then  
  3.         print("====== hit end ====")  
  4.     end  
  5. end, sp.EventType.ANIMATION_END)  
现在的问题是,我需要skeletonNode才能播放这个动画。怎么才能拿到这个skeletonNode,想当然的以为应该这么写

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. self.skeletonNode:registerSpineEventHandler(function (event)  
  2.     if event.animation == "hit" then  
  3.         self.skeletonNode:setAnimation(0, "hit", false)  
  4.     end    
  5. end, sp.EventType.ANIMATION_END)  
试验发现可行,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值