lua 使用 spine 的一些问题
2015-11-13 21:07
435 查看
3.4 lua 使用 spine 的一些问题
分类: cocos2d-x2015-03-1016:58 2321人阅读 评论(4) 收藏 举报
一、基本使用:
[plain] view
plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
self.skeletonNode = sp.SkeletonAnimation:create("sptest/spineboy.json", "sptest/spineboy.atlas", 0.3)
self.skeletonNode:setAnimation(0, "walk", true)
self.skeletonNode:setMix("walk", "jump", 0.2)
self.skeletonNode:setMix("jump", "run", 0.2)
self.skeletonNode:setAnimation(0, "walk", false)
self.skeletonNode:addAnimation(0, "hit", false)
self.skeletonNode:setDebugBonesEnabled(true)
self.skeletonNode:registerSpineEventHandler(function (event)
print(string.format("[spine] %d start: %s", event.trackIndex,event.animation))
end, sp.EventType.ANIMATION_START)
1、一开始,要set一个animation,第一个参数是track(后面细说)。
2、播放其他动画是用add
3、当set的动画播放完毕停止之后(非循环),再add动画是不会动的。
4、mix 就是让2个动画直接的衔接更平滑,最后一个参数是过渡时间
1、回调
正常情况下,都会对一个动画的完结做一些处理。比如我需要的就是,当动作A完成后,播放动作C。基本写法如下:
[plain] view
plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
self.skeletonNode:registerSpineEventHandler(function (event)
if event.animation == "hit" then
print("====== hit end ====")
end
end, sp.EventType.ANIMATION_END)
现在的问题是,我需要skeletonNode才能播放这个动画。怎么才能拿到这个skeletonNode,想当然的以为应该这么写
[plain] view
plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
self.skeletonNode:registerSpineEventHandler(function (event)
if event.animation == "hit" then
self.skeletonNode:setAnimation(0, "hit", false)
end
end, sp.EventType.ANIMATION_END)
试验发现可行,
相关文章推荐
- ngx_lua 模块提供的指令和API等
- lua ---math 库
- lua资源
- lua--简明教程
- Torch/Lua学习资料汇总
- lua 中string.char字节流的处理
- lua 中点号与冒号的区别
- [LintCode] Expression Evaluation
- lua 继承,使用元方法__index
- c++ 调用lua 函数 之lua堆栈操作
- WPF,textBox默认是失去焦点绑定值才改变,怎么做到输入框值一改变就改变绑定值. Text="{Binding EvaluationContent,UpdateSourceTrigger=PropertyChanged}"
- Lua
- lua开发--web页面服务
- Lua顺序 执行顺序
- 热更新如果是android平台的话,可以直接.cs文件到本地,然后使用反射进行加载。 如果是IOS平台的话,就没有办法直接更新.cs文件了,可以使用ULua进行搞定。
- Lua游戏开发(一)---Lua语言
- 解析Lua中关于Metatable学习笔记
- c++调用lua 函数之 lua_API
- sublime text编译lua
- U3D和ULUA热更新