123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import modelDtlManager from "../dataManager/modelDtlManager";
- import npcHelper from "../dataManager/npcHelper";
- import Utils from "../framework/utils/utils";
- import gameData from "../gameLogic/utrl/gameData";
- const { ccclass, property } = cc._decorator;
- @ccclass
- /**僵尸动作类 */
- class zombieActionMgr {
- /**
- *
- * @param spine 目标spine
- * @param modelID 模型ID
- * @param loop 是否循环
- * @param cb 播放完回调
- */
- public playAttackAnim(spine: sp.Skeleton, modelID: number, loop: boolean, cb?) {
- let modelDt = modelDtlManager.getDataByID(modelID);
- let animName = modelDt.attAct;
- let newAnimName = this.getAnimName(animName, modelID);
- let trackIndex = spine.setAnimation(0, newAnimName, loop);
- if (cb) {
- spine.setTrackCompleteListener(trackIndex, cb);
- }
- }
- // animComplete(track, loopCount) {
- // if (track.animation.name.indexOf('attack') >= 0) {
- // this.playGunAnim('stand', true, 1);
- // } else if (track.animation.name.indexOf('switch') >= 0) {
- // this.playGunAnim('stand', true, 1);
- // }
- // }
- /**
- *
- * @param spine 目标spine
- * @param modelID 模型ID
- * @param loop 是否循环
- */
- public playHitAnim(spine: sp.Skeleton, modelID: number, loop: boolean) {
- let modelDt = modelDtlManager.getDataByID(modelID);
- let animName = modelDt.hitAct;
- let newAnimName = this.getAnimName(animName, modelID);
- spine.setAnimation(0, newAnimName, loop);
- }
- /**
- *
- * @param spine 目标spine
- * @param modelID 模型ID
- * @param loop 是否循环
- */
- public playStandAnim(spine: sp.Skeleton, modelID: number, loop: boolean) {
- let modelDt = modelDtlManager.getDataByID(modelID);
- let animName = modelDt.idleAct;
- let newAnimName = this.getAnimName(animName, modelID);
- spine.setAnimation(0, newAnimName, loop);
- }
- /**
- *
- * @param spine 目标spine
- * @param modelID 模型ID
- * @param loop 是否循环
- */
- public playWallAnim(spine: sp.Skeleton, modelID: number, loop: boolean) {
- let modelDt = modelDtlManager.getDataByID(modelID);
- let animName = modelDt.moveAct;
- let newAnimName = this.getAnimName(animName, modelID);
- spine.setAnimation(0, newAnimName, loop);
- }
- public setSkin(spine, modelID: number) {
- let modelDt = modelDtlManager.getDataByID(modelID);
- let skinName = modelDt.modelname;
- spine.setSkin(skinName);
- }
- /**
- *
- * @param animName 动作名称
- * @returns
- */
- private getAnimName(animName: string, modelID?) {
- let nameArr = animName.split(","); //切割动作名称
- if (modelID) {
- if (npcHelper.isBoss(modelID)) { //boss
- return nameArr[0];
- }
- }
- let dayTimeName = ''
- let nightTimeName = '';
- nameArr.forEach((name) => {
- if (name.indexOf("1") >= 0) {
- dayTimeName = name;
- } else {
- nightTimeName = name;
- }
- })
- if (gameData.isDayTime) {
- return dayTimeName;
- } else {
- return nightTimeName;
- }
- }
- }
- export default new zombieActionMgr();
|