2024-03-06 22:06:49 +08:00
|
|
|
import { _decorator, Component, Node } from 'cc';
|
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type ResumeCallback<T> = (arg: T) => void;
|
|
|
|
|
|
|
|
|
|
@ccclass('GameState')
|
|
|
|
|
export class GameState extends Component {
|
|
|
|
|
|
|
|
|
|
private static instance: GameState;
|
|
|
|
|
|
|
|
|
|
private constructor() {
|
|
|
|
|
super();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static getInstance(): GameState {
|
|
|
|
|
if (!GameState.instance) {
|
|
|
|
|
GameState.instance = new GameState();
|
|
|
|
|
}
|
|
|
|
|
return GameState.instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-03-29 20:08:58 +08:00
|
|
|
/** 当前是否处于暂停状态 */
|
2024-03-06 22:06:49 +08:00
|
|
|
PauseState: boolean = false;
|
2024-03-29 20:08:58 +08:00
|
|
|
/** 改变暂停状态的回调函数 */
|
2024-03-06 22:06:49 +08:00
|
|
|
ResumeCallBackFunc: ResumeCallback<any>[] = [];
|
|
|
|
|
|
|
|
|
|
|
2024-03-29 20:08:58 +08:00
|
|
|
/** 获取暂停状态 */
|
2024-03-06 22:06:49 +08:00
|
|
|
IsPauseState(): boolean {
|
|
|
|
|
return this.PauseState;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-29 20:08:58 +08:00
|
|
|
/** 设置暂停状态 */
|
2024-03-06 22:06:49 +08:00
|
|
|
SetCurrentPauseState(State: boolean) {
|
|
|
|
|
//不等于时 设置一次
|
|
|
|
|
if (State != this.PauseState) {
|
|
|
|
|
this.PauseState = State;
|
|
|
|
|
|
|
|
|
|
//调用恢复游戏的逻辑回调函数
|
|
|
|
|
this.ResumeCallBackFunc.forEach(callback => {
|
|
|
|
|
callback(State);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-29 20:08:58 +08:00
|
|
|
/** 注册恢复游戏的逻辑回调函数 */
|
2024-03-06 22:06:49 +08:00
|
|
|
RegisterResumeCallBack(Func: ResumeCallback<any>) {
|
|
|
|
|
this.ResumeCallBackFunc.push(Func);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|