cocos 三种缓存方式 以及创建动画方式

---文理缓存的使用
cc.Director:getInstance():getTextureCache():addImage("文件名.png")
    local sp = cc.Sprite:createWithTexture(cc.Director:getInstance():getTextureCache():getTextureForKey("文件名.png"))


---1精灵镇数组方式创建动画
local blueAnimaFrame = {}
   for i=1,5 do
    blueAnimaFrame[i] = cc.SpriteFrame:create("资源名称",cc.rect(0,0,540,215)) --cc.rect(0,0,540,215) 图片大小
   end
   local animation =  cc.Animation:createWithSpriteFrames(blueAnimaFrame,0.9/#blueAnimaFrame)--0.9/#blueAnimaFrame 播放每一帧的时间
   local animate = cc.Animate:create(animation)
self:runAction(animate)
animation:setLoops(-1) --设置 -1,表示无限循环
   animation:setRestoreOriginalFrame(true) --是否回到第一针
   cc.AnimationCache:getInstance():addAnimation(animation,"键")  --通过键获取动画


     ---2plist缓存创建 精灵真缓存
   local spriteFrameCache= cc.SpriteFrameCache:getInstance();
   spriteFrameCache:addSpriteFrames("资源名称.plist","资源名称.png");
local animation = cc.Animation:create()
   for i=1,10 do
       --从plist大图中读取图片资源
       animation:addSpriteFrame(cc.SpriteFrameCache:getInstance():getSpriteFrame("资源名称"..i .. ".png"))
   end
   animation:setDelayPerUnit(0.1);
   animation:setRestoreOriginalFrame(true) --是否回到第一针
   --可以直接使用
   local animate = cc.Animate:create(animation)
   self:runAction(animate)
   --也可以缓存动画
    cc.AnimationCache:getInstance():addAnimation(animation,"键")  --通过键获取动画
   ---通过键调用
   animate = cc.Animate:create(cc.AnimationCache:getInstance():getAnimation("键"))

   self:runAction(animate)

---骨骼动画

ccs.ArmatureDataManager:getInstance():addArmatureFileInfo(_png,_plist,_json)

--ccs.ArmatureDataManager:getInstance(): addArmatureFileInfoAsync(_png,_plist,_json)
function handler1(Armature, MovementEventType, name)
        if MovementEventType == ccs.MovementEventType.complete then
            print("Complete...")
        end
    end
local armature = ccs.Armature:create("资源名称")
armature:getAnimation():play("动画名称")  --playWithIndex(0,0,1) --第一个参数是动画下表第二个是时间间隔第三个是是否循环

armature:getAnimation():setMovementEventCallFunc(handler1)

Spine动画

self.armature = _G.sp.SkeletonAnimation:create(cmd.RES.."skeleton.json",cmd.RES.."skeleton.atlas")
self.armature:setPosition(cc.p(display.cx - 15 , display.cy - 50))
self.armature:setScale(1.035)
self.armature:setAnimation(0,"bipai",false)

local function handler(event)
        if event.type == "complete" and event.animation == "walk" then
   
        end
    end
self.armature:registerSpineEventHandler(handler,2)




猜你喜欢

转载自blog.csdn.net/xuefujin/article/details/80924857