小工具知识网

当前位置: 首页 > 行业知识 > cocos2d-lua:骨骼动画的使用

行业知识

cocos2d-lua:骨骼动画的使用

2026-10-31 16:34:31 来源:互联网转载

骨骼动画的使用

  • spine骨骼动画的使用
  • Armature骨骼动画

    spine骨骼动画的使用

    -- 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)

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

    ()
              sp.EventType.ANIMATION_START     =  0   sp.EventType.ANIMATION_END       =  2  sp.EventType.ANIMATION_COMPLETE  =  3  sp.EventType.ANIMATION_EVENT     =  5

    Armature骨骼动画

    -- Armature骨骼动画导出的文件为:xxx.ExportJson,xxx.plist,xxx.pnglocal 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()    endend)
    ()

上一篇:【C++奇妙冒险】拷贝构造函数、运算符重载(赋值重载|const成员|取地址重载|const取地址重载)

下一篇:ice服务器怎么进游戏?