【egret】 龙骨

来源:互联网 发布:传奇数据库怎么打开 编辑:程序博客网 时间:2024/04/27 13:38

创建龙骨

将龙骨导出后,会生成 龙骨json纹理集
代码:

- 创建龙骨工厂

                var dragonbonesData = RES.getRes( "xinghuo_ske_json" );        var textureData1 = RES.getRes( "xinghuo_tex_0_json" );        var texture1 = RES.getRes( "xinghuo_tex_0_png" );        var textureData2 = RES.getRes( "xinghuo_tex_1_json" );        var texture2 = RES.getRes( "xinghuo_tex_1_png" );        var textureData3 = RES.getRes( "xinghuo_tex_2_json" );        var texture3 = RES.getRes( "xinghuo_tex_2_png" );        var dragonbonesFactory: dragonBones.EgretFactory = new dragonBones.EgretFactory();        dragonbonesFactory.addDragonBonesData( dragonBones.DataParser.parseDragonBonesData( dragonbonesData ) );        dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture1, textureData1 ) );        dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture2, textureData2 ) );        dragonbonesFactory.addTextureAtlas( new dragonBones.EgretTextureAtlas( texture3, textureData3 ) );

有时会出现纹理集过大的情况,需要通过导出多个纹理集来控制大小。

- 创造骨骼

this.armature = dragonbonesFactory.buildArmature( "name" );this.armatureDisplay = this.armature.getDisplay();
private createAnim() {    dragonBones.WorldClock.clock.add( this._armature );    this._armature.animation.gotoAndPlay( "动画名称" );    this.isStartPlayMainAnim = !this.isStartPlayMainAnim;    this.ticker = egret.Ticker.getInstance();    this.ticker.register( this.updata, this );}
private updata( frameTime: number ) {    dragonBones.WorldClock.clock.advanceTime( 0.01 );}

- 动画控制器

this.armature.animation
  • 事件
/*开始播放动画*/dragonBones.AnimationEvent.START/*动画循环播放一次完成*/dragonBones.AnimationEvent.LOOP_COMPLETE/*动画播放到关键帧*/dragonBones.AnimationEvent.ANIMATION_FRAME_EVENT

注意

在使用龙骨动画时,如果需要改变龙骨的大小,需要通过 **屏幕大小** 与 **龙骨设计大小** 计算出缩放比例,在代码里通过设置龙骨的 **scaleY** 与 **scaleX** 来控制。

0 0