| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { _decorator } from 'cc';
- const { ccclass } = _decorator;
- @ccclass('Player')
- export class Player {
- private static _instance: Player;
- /** 玩家ID(可从服务端返回赋值) */
- public playerId: string = "";
- /** 玩家昵称 */
- public nickname: string = "Guest";
- /** 玩家等级 */
- public level: number = 1;
- /** 玩家当前分数 */
- public score: number = 0;
- /** 玩家货币类型(比如 "USD", "CNY", "GOLD") */
- public currencyType: string = "GOLD";
- public betConfig: number[] = [];
- /** 玩家登录状态 */
- public isLoggedIn: boolean = false;
- private constructor() {}
- /**
- * 获取单例实例
- */
- public static getInstance(): Player {
- if (!this._instance) {
- this._instance = new Player();
- }
- return this._instance;
- }
- /**
- * 初始化或从服务端同步玩家数据
- */
- public init(data: any) {
- if (!data) return;
- this.playerId = data.playerId || this.playerId;
- this.nickname = data.nickname || this.nickname;
- this.level = data.level || this.level;
- this.score = data.score || this.score;
- this.currencyType = data.currencyType || this.currencyType;
- this.betConfig = data.betConfig || this.betConfig;
- this.isLoggedIn = true;
- }
- /**
- * 增加分数
- */
- public addScore(amount: number) {
- this.score += amount;
- if (this.score < 0) this.score = 0;
- }
- /**
- * 增加金币或钻石
- */
- public addCurrency(type: 'coins' | 'gems', amount: number) {
- }
- /**
- * 消耗货币
- */
- public spendCurrency(type: 'coins' | 'gems', amount: number): boolean {
- return false;
- }
- /**
- * 重置玩家数据(例如登出时)
- */
- public reset() {
- this.playerId = "";
- this.nickname = "Guest";
- this.level = 1;
- this.score = 0;
- this.currencyType = "GOLD";
- this.isLoggedIn = false;
- }
- /**
- * 打印调试信息
- */
- public debugInfo() {
- console.log("=== Player Info ===");
- console.log(`ID: ${this.playerId}`);
- console.log(`Name: ${this.nickname}`);
- console.log(`Level: ${this.level}`);
- console.log(`Score: ${this.score}`);
- console.log(`Currency: ${this.currencyType}`);
- console.log("====================");
- }
- }
|