cocos2d-lua:骨骼动画的使用

骨骼动画的使用

spine骨骼动画的使用

lua 复制代码
-- spine骨骼动画导出的文件为:xxx.atlas,xxx.json,xxx.png 三个文件需同时存在
local spine = sp.SkeletonAnimation:create("xxx.json", "xxx.atlas")
-- 第一个参数为从整个动画的第几帧开始播到最后一帧,第二个参数为动画名,第三个参数为是否循环播放
spine:setAnimation(0, "animation", false)
-- 开始播放动画的回调
spine:registerSpineEventHandler(function (event)
    --对应逻辑事件
end, sp.EventType.ANIMATION_START)
-- 播放动画结束的回调
spine:registerSpineEventHandler(function (event)
   --对应逻辑事件
    delayDoSomething(function()
        spine:removeFromParent()
    end, 1 / 60.0)  -- 延时一帧移除
end, sp.EventType.ANIMATION_END)
-- 播放动画完成的回调
spine:registerSpineEventHandler(function (event)
    --对应逻辑事件
end, sp.EventType.ANIMATION_COMPLETE)
-- 播放动画事件的回调
spine:registerSpineEventHandler(function (event)
    --对应逻辑事件
end, sp.EventType.ANIMATION_EVENT)
 
local size = parent:getContentSize()
sprite:setPosition(cc.p(size.width/2, size.height/2))
parent:addChild(spine)

补充:对于引擎默认封装,对应的参数可以使用默认值代替

xml 复制代码
          sp.EventType.ANIMATION_START     =  0 
		  sp.EventType.ANIMATION_END       =  2
		  sp.EventType.ANIMATION_COMPLETE  =  3
		  sp.EventType.ANIMATION_EVENT     =  5

Armature骨骼动画

lua 复制代码
-- Armature骨骼动画导出的文件为:xxx.ExportJson,xxx.plist,xxx.png
local armatureDataManager = ccs.ArmatureDataManager:getInstance()
armatureDataManager:addArmatureFileInfo("xxx.png", "xxx.plist", "xxx.ExportJson")
local armature = ccs.Armature:create("xxx")
armature:setPosition(cc.p(0, 0))
parent:addChild(armature)
-- 第一个参数是动画名称,第二个参数是事件间隔,第三个参数是是否循环(具体实现查看CCArmatureAnimation.cpp)
-- armature:getAnimation():play("Animation1", -1, 0)
-- 第一个参数是动画下标,第二个参数是事件间隔,第三个参数是是否循环
armature:getAnimation():playWithIndex(0, -1, 0)
--设置回调
armature:getAnimation():setMovementEventCallFunc(function (armature, movementType, movementID)
    -- print(armature, movementType, movementID)
    if movementType == ccs.MovementEventType.complete then
        armature:removeFromParent()
    end
end)
相关推荐
编程乐学(Arfan开发工程师)2 小时前
42、响应处理-【源码分析】-浏览器与PostMan内容协商完全适配
java·spring boot·后端·测试工具·lua·postman
啾啾Fun5 小时前
【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
java·redis·分布式·微服务·lua·redisson
多多*7 小时前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua
修电脑的猫21 小时前
带有输入的CDS和程序调用
开发语言·lua
代码丰1 天前
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
java·分布式·lua
Coovally AI模型快速验证1 天前
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
人工智能·神经网络·yolo·目标检测·无人机·cocos2d
wcjwdq2 天前
Lua和JS的继承原理
javascript·lua·脚本继承
哈哈哈哈哈哈哈哈哈...........2 天前
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
tcp/ip·nginx·lua
Coovally AI模型快速验证3 天前
基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破
人工智能·神经网络·算法·yolo·目标检测·无人机·cocos2d
爱瑞瑞5 天前
Junit5测试类编写笔记
junit