You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
|
|
cc.game.once(cc.game.EVENT_ENGINE_INITED, function () {
|
|
|
|
cc.js.mixin(sp.Skeleton.prototype, {
|
|
update (dt) {
|
|
// if (CC_EDITOR) return;
|
|
|
|
if (CC_EDITOR) {
|
|
cc.engine._animatingInEditMode = 1;
|
|
cc.engine.animatingInEditMode = 1;
|
|
}
|
|
|
|
if (this.paused) return;
|
|
|
|
dt *= this.timeScale * sp.timeScale;
|
|
|
|
if (this.isAnimationCached()) {
|
|
|
|
// Cache mode and has animation queue.
|
|
if (this._isAniComplete) {
|
|
if (this._animationQueue.length === 0 && !this._headAniInfo) {
|
|
let frameCache = this._frameCache;
|
|
if (frameCache && frameCache.isInvalid()) {
|
|
frameCache.updateToFrame();
|
|
let frames = frameCache.frames;
|
|
this._curFrame = frames[frames.length - 1];
|
|
}
|
|
return;
|
|
}
|
|
if (!this._headAniInfo) {
|
|
this._headAniInfo = this._animationQueue.shift();
|
|
}
|
|
this._accTime += dt;
|
|
if (this._accTime > this._headAniInfo.delay) {
|
|
let aniInfo = this._headAniInfo;
|
|
this._headAniInfo = null;
|
|
this.setAnimation (0, aniInfo.animationName, aniInfo.loop);
|
|
}
|
|
return;
|
|
}
|
|
|
|
this._updateCache(dt);
|
|
} else {
|
|
this._updateRealtime(dt);
|
|
}
|
|
}
|
|
})
|
|
|
|
})
|
|
|