--创建骨骼动画 json文件,atlas文件,第三个参数是缩放倍数
sp.SkeletonAnimation:create(jsonPath, atlasPath, 1)
SkeletonAnimation 骨骼 动画
--更改文件名的时候,需要改json,atlas,png文件名称一致,更重要的是将atlas文件中的图片源(第一行)手动更改为修改后的png文件名
--三个方法监听 分别是开始sp.EventType.ANIMATION_START,结束sp.EventType.ANIMATION_END,动画完成sp.EventType.ANIMATION_COMPLETE
skeletonNode:registerSpineEventHandler(function (event)
print(string.format("[spine] %d start: %s",
event.trackIndex,
event.animation))
end, sp.EventType.ANIMATION_START)
skeletonNode:registerSpineEventHandler(function (event)
print(string.format("[spine] %d end:",
event.trackIndex))
end, sp.EventType.ANIMATION_END)
skeletonNode:registerSpineEventHandler(function (event)
print(string.format("[spine] %d complete: %d",
event.trackIndex,
event.loopCount))
end, sp.EventType.ANIMATION_COMPLETE)
--添加监听事件方法 监听关键帧 触发响应
--关键帧去json文件中可以看到
skeletonNode:registerSpineEventHandler(function (event)
print(string.format("[spine] %d event: %s, %d, %f, %s",
event.trackIndex,
event.eventData.name,
event.eventData.intValue,
event.eventData.floatValue,
event.eventData.stringValue))
end, sp.EventType.ANIMATION_EVENT)
false为不循环播放,需要循环参数可填true ,false 也可再加参数表示播放的次数
skelNode:setAnimation(0, animationName, false)
setAnimation方法只能播放一种动画,所以当要连续播放不同的动画时,需要使用addAnimation方法来实现,它可以一条一条的播放不同的动画
skeletonNode:addAnimation(0, "jump", false, 3)---参数规则同上
--混合动画 ,这里是spine最能体现价值的地方,衔接比较自然
skeletonNode:setMix("walk", "jump", 0.2)
如果没有关键帧可以监听动画完成后做相应的操作
--注册事件 动画完成后处理(当然这里是只播放一次而不是循环播放)
skeletonNode:registerSpineEventHandler(function (event)
if event.loopCount == 1 then
---动画完成
end
end, sp.EventType.ANIMATION_COMPLETE)