65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
// 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;
|
|
}
|
|
}
|