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
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)
|
|
}
|
|
}
|
|
} |