Cocos Creator大量使用龙骨动画的性能优化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cocos Creator大量使用龙骨动画的性能优化相关的知识,希望对你有一定的参考价值。
参考技术A 以下讲的是Cocos Creator v2.3.2版本的情况:根据DragonBones属性:
主要修改的就是【Animation Cache Mode】和【Enable Batch】两个属性。
当界面需要同屏显示多个(3个及以上)的龙骨对象时,选择【Animation Cache Mode】为SHARED_CACHE 模式,勾选【Enable Batch】,会明显改善游戏流畅度(小游戏尤为明显)。
注意:龙骨动画回调
此时_event为空,this.animState也为空,不能用this.animState.stop();来控制动画,可以用this.dragonBones_xxx.timeScale = 0;来暂停/停止动画,用this.dragonBones_xxx.timeScale = 1;来继续播放动画。
最后,也是最重要的,Cocos Creator v2.3.2版本的apk包会有闪退的问题,换成Cocos Creator v2.4.3 beta2及以上版本就可以了,但是!!!这里又有个大问题,关于小游戏的子包的,因为Cocos Creator新版本使用新的资源管理:Asset Bundle,看下官网介绍:
也就是说小游戏的子包的使用方式已经变了,需要调整下。
cocos creator js加载龙骨
cc.Class({
extends: cc.Component,
properties: {
dragonBone: {
default: null,
type: dragonBones.ArmatureDisplay
}
},
dynamicCreate () {
if (this.dragonBone.dragonAtlasAsset) {
return;
}
cc.resources.load('dragonBones/NewDragonTest', dragonBones.DragonBonesAsset, (err, res) => {
if (err) cc.error(err);
this.dragonBone.dragonAsset = res;
cc.resources.load('dragonBones/texture', dragonBones.DragonBonesAtlasAsset, this.onComplete.bind(this));
});
},
onComplete (err, res) {
if (err) cc.error(err);
this.dragonBone.dragonAtlasAsset = res;
this.dragonBone.armatureName = 'armatureName';
this.dragonBone.playAnimation('stand', 0);
}
});
以上是关于Cocos Creator大量使用龙骨动画的性能优化的主要内容,如果未能解决你的问题,请参考以下文章
Cocos Creator 通用框架设计 —— 资源管理优化