---文理缓存的使用
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("键"))
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) --第一个参数是动画下表第二个是时间间隔第三个是是否循环
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)