zoukankan      html  css  js  c++  java
  • 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);
            });
    

      

    全局换装

    局部换装

  • 相关阅读:
    PCA算法的最小平方误差解释
    windows下面安装Python和pip终极教程
    理解C/C++的复杂声明
    C++的特殊预处理定义#、##和#@
    虚拟机中linux系统无法打开原保存的显示器配置解决方法
    Visual C++内存泄露检测—VLD工具使用说明
    C++重载、覆盖与隐藏——转载
    python爬虫实战(二)--------千图网高清图
    Linux常用命令12
    Linux常用命令11
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/13021916.html
Copyright © 2011-2022 走看看