我智商爆棚
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.
 
 
 
 
 

93 lines
2.7 KiB

/*
* @Author: YeeChan
* @Date: 2021-12-30 14:42:48
* @Description: 体力管理器
*/
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
import EventMgr from "../../FrameWork/Event/EventMgr";
import GameMgr from "../../FrameWork/Mgr/GameMgr";
import Common5 from "../../Platform/th/Common5";
import RotateScripts from "../../Platform/th/RotateScripts";
export default class TimeManger {
maxTime:number = 0;
initTime:number = 0;
timeLabel:cc.Label = null;
rotNode:cc.Node = null;
title:string = "当前剩余时间:";
interval = null;
public init(time,label){
this.maxTime = time;
this.initTime = time;
this.timeLabel = label;
this.interval = setInterval(()=>{
this.interFunc();
},1000)
}
public setRotNode(node){
node.getComponent(RotateScripts).stop();
this.rotNode = node;
}
public reset(){
clearInterval(this.interval);
this.interval = null;
this.maxTime = Math.max(this.maxTime,this.initTime);
this.interval = setInterval(()=>{
this.interFunc();
},1000)
}
public add(addTime){
this.maxTime += addTime;
if (this.interval == null){
this.interval = setInterval(()=>{
this.interFunc();
},1000)
}
}
public setTitle(titleInput){
this.title = titleInput;
}
interFunc(){
try{
if (this.maxTime > 0){
this.maxTime--;
if (this.timeLabel != null){
this.timeLabel.string = this.title+this.maxTime.toString();
}
if (this.maxTime <= 10){
if (this.maxTime == 10){
this.rotNode.getComponent(RotateScripts).startCustom();
}
Common5.playEffect("timeTick");
}
else{
this.rotNode.getComponent(RotateScripts).stop();
}
}
else{
if (this.rotNode!=null){
this.rotNode.getComponent(RotateScripts).stop();
}
EventMgr.emitEvent_custom(ryw_Event.timeOut);
clearInterval(this.interval);
this.interval = null;
}
}
catch{
clearInterval(this.interval);
}
}
public stop(){
clearInterval(this.interval);
this.interval = null;
}
public restart(){
if (null == this.interval){
this.interval = setInterval(()=>{
this.interFunc();
},1000)
}
}
}