• Cocos Creator 骨骼动画 (龙骨DragonBones)


    版本2.3.4

    参考:

    cocos教程:DragonBones骨骼动画资源

    龙骨动画

    将龙骨动画放到cocos的assets下。我这里龙骨动画是Dragonbones导出的二进制动画。

    直接拖拽龙骨动画(骨头图标)到舞台

    设置骨骼动画的属性,Dragon Altas Asset图片,Animation动作,PlayTime循环播放等

    代码生成龙骨动画

    龙骨资源路径是assets/resources/dragonbones,loadResDir只需要填dragonbones就行了。

    //根据路径加载资源
    cc.loader.loadResDir("dragonbones",cc.Asset,null,(err, resource)=>{
                console.log("资源:",resource);
                //生成骨骼动画
                let node:cc.Node = new cc.Node();
                let armatureDisplay:dragonBones.ArmatureDisplay = node.addComponent(dragonBones.ArmatureDisplay);
                armatureDisplay.dragonAsset = resource[0];
                armatureDisplay.dragonAtlasAsset = resource[3];
                armatureDisplay.armatureName = "role3";
                armatureDisplay.playAnimation("move",0);
                node.x = 100;
                node.y = 100;
                this.node.addChild(node);
            });
    

      

    动画2替换动画1皮肤

            //加载资源
             cc.loader.loadResDir("dragonbones",cc.Asset,null,(err, resource)=>{
                 console.log("资源:",resource);
    
                //生成动画1
                let node:cc.Node = new cc.Node();
                let armatureDisplay:dragonBones.ArmatureDisplay = node.addComponent(dragonBones.ArmatureDisplay);
                armatureDisplay.dragonAsset = resource[0];
                armatureDisplay.dragonAtlasAsset = resource[3];
                armatureDisplay.armatureName = "role3";
                armatureDisplay.playAnimation("move",0);
                node.x = 100;
                node.y = 100;
                this.node.addChild(node);
    
                //生成动画2
                let node2:cc.Node = new cc.Node();
                let armatureDisplay2:dragonBones.ArmatureDisplay = node2.addComponent(dragonBones.ArmatureDisplay);
                armatureDisplay2.dragonAsset = resource[4];
                armatureDisplay2.dragonAtlasAsset = resource[7];
                armatureDisplay2.armatureName = "role4";
                armatureDisplay2.playAnimation("move",0);
                node2.x = 150;
                node2.y = 150;
                this.node.addChild(node2);
                
    
                //动画2的皮肤应用到动画1上
                let factory = dragonBones.CCFactory.getInstance();
                factory.replaceSkin(armatureDisplay.armature(), (armatureDisplay2.armature() as dragonBones.Armature).armatureData.defaultSkin, true);
            });
    

      

    全局换装

    局部换装

  • 相关阅读:
    TYVJ1061 Mobile Service
    TYVJ1061 Mobile Service
    KMP 模板
    poj 3254 Corn Field
    poj 3254 Corn Field
    洛谷1279 字串距离
    poj 1041 John's trip——欧拉回路字典序输出
    bzoj 3033 太鼓达人——欧拉图搜索
    bzoj 2503 相框——思路
    bzoj 2935 [Poi1999]原始生物——欧拉回路思路!
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/13021916.html
Copyright © 2020-2023  润新知