// Learn TypeScript: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/typescript.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html // Learn Attribute: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - [Chinese] https://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html const {ccclass, property} = cc._decorator; @ccclass export default class GameData extends cc.Component { private static _instance: GameData = null; public selectedLevel: number = 1; public static get instance(): GameData { if (!this._instance) { this._instance = new GameData(); } return this._instance; } // 🔹 Shooting speed (seconds per shot) public get enemyShootingInterval(): number { switch (this.selectedLevel) { case 1: return 8; case 2: return 6; case 3: return 4; case 4: return 2; default: return 8; } } // 🔹 Enemy spawn interval (seconds) public get enemySpawnInterval(): number { switch (this.selectedLevel) { case 1: return 6; case 2: return 8; case 3: return 10; case 4: return 12; default: return 6; } } // 🔹 Player speed public get enemyMoveTime(): number { switch (this.selectedLevel) { case 1: return 3; case 2: return 4; case 3: return 5; case 4: return 6; default: return 3; } } // 🔹 Any other level-based settings... public get enemyHealth(): number { return this.selectedLevel; } }