| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | import { _decorator, director, Label } from 'cc';import { UIBase } from '../../GameFrameWork/UIBase';import { resMgr } from '../../../Frames/ResourcesMgr';import { GameOverData } from './Data/GameOverData';const { ccclass, property } = _decorator;@ccclass('GameOver')export class GameOver extends UIBase {    // //是否胜利    // win: boolean = null;    // killCount: number = null;    // killPercent: number = null;    // //金币奖励    // killAward: number = null;    // lifeAward: number = null;    // stageClearAward: number = null;    // totalAward: number = null;    // //经验奖励    // xp: number = null;    // //钻石奖励    // lifeDia: number = null;    // stageClearDia: number = null;    // totalDia: number = null;    gameOverDt: GameOverData = null;    protected onStart() {        this.gameOverDt = GameOverData.Instance;        this.onBtnClick("_btnLeft", this._onBtnBack);        this._calculatedReward();        this._config();    }    // config() {    //     this.getSprite("_gameOverUITitle").spriteFrame = this.win ?    //         resMgr.getSpriteFrame("GameWin") :    //         resMgr.getSpriteFrame("GameOver");    //     this.getLabel("_labelRight").string = this.win ? "下一关" : "重新开始";    //     const labelDate = {    //         "_killCount":this.killCount,    //         "_lifePercent":`${this.killPercent} %`,    //         "_kill":this.killAward,    //         "_life":this.lifeAward,    //         "_stageClear":this.stageClearAward,    //         "_total":this.totalAward,    //         "_xp":this.xp,    //         "_lifeDia":this.lifeDia,    //         "_stageClearDia":this.stageClearDia,    //         "_totalDia":this.totalDia,    //     }    //     this._setLabels(labelDate);    //     // this.getLabel("_killCount").string = String(this.killCount);    //     // this.getLabel("_lifePercent").string = `${String(this.killPercent)} %`;    //     // this.getLabel("_kill").string = String(this.killAward);    //     // this.getLabel("_life").string = String(this.lifeAward);    //     // this.getLabel("_stageClear").string = String(this.stageClearAward);    //     // this.getLabel("_total").string = String(this.totalAward);    //     // this.getLabel("_xp").string = String(this.xp);    //     // this.getLabel("_lifeDia").string = String(this.lifeDia);    //     // this.getLabel("_stageClearDia").string = String(this.stageClearDia);    //     // this.getLabel("_totalDia").string = String(this.totalDia);    // }    // private _setLabels(labelDate){    //     for(const [labelName, value] of labelDate){    //         this.getLabel(labelName).string = String(value);    //     }    // }    private _calculatedReward() {        if (this.gameOverDt.KillCount >= 20) {            this.gameOverDt.KillAward = 100;            this.gameOverDt.Xp = 30;        } else if (this.gameOverDt.KillCount < 20) {            this.gameOverDt.KillAward = 50;            this.gameOverDt.Xp = 15;        }        if (this.gameOverDt.LifePercent === 100) {            this.gameOverDt.LifeAward = 40;            this.gameOverDt.LifeDia = 10;        } else if (this.gameOverDt.LifePercent >= 50 && this.gameOverDt.LifePercent < 100) {            this.gameOverDt.LifeAward = 30;            this.gameOverDt.LifeDia = 6;        } else if (this.gameOverDt.LifePercent >= 0 && this.gameOverDt.LifePercent < 50) {            this.gameOverDt.LifeAward = 20;            this.gameOverDt.LifeDia = 2;        }                // if(this.gameOverDt.Win){        //     this.gameOverDt.StageClearDia = 10;        // } else {        //     this.gameOverDt.StageClearDia = 2;        // }        this.gameOverDt.StageClearDia = this.gameOverDt.Win ? 10 : 2;        this.gameOverDt.TotalAward = this.gameOverDt.KillAward + this.gameOverDt.LifeAward;        this.gameOverDt.TotalDia = this.gameOverDt.LifeDia + this.gameOverDt.StageClearDia;    }    private _config() {        this.getSprite("_gameOverUITitle").spriteFrame = this.gameOverDt.Win ?            resMgr.getSpriteFrame("GameWin") : resMgr.getSpriteFrame("GameOver");        this.getNode("_btnRight").getChildByName("Label").getComponent(Label).string =         this.gameOverDt.Win ? "下一关" : "重新开始";        const labelData = new Map<string, number | string>();        labelData.set("_killCount", this.gameOverDt.KillCount);        labelData.set("_lifePercent", `${this.gameOverDt.LifePercent} %`);        labelData.set("_kill", this.gameOverDt.KillAward);        labelData.set("_life", this.gameOverDt.LifeAward);        //通关奖励:StageClearAward        labelData.set("_stageClear", this.gameOverDt.StageClearAward);        labelData.set("_total", this.gameOverDt.TotalAward);        labelData.set("_xp", this.gameOverDt.Xp);        labelData.set("_lifeDia", this.gameOverDt.LifeDia);        labelData.set("_stageClearDia", this.gameOverDt.StageClearDia);        labelData.set("_totalDia", this.gameOverDt.TotalDia);        this._setLabels(labelData);    }    private _setLabels(labelData: Map<string, number | string>) {        for (const [labelName, value] of labelData.entries()) {            this.getLabel(labelName).string = String(value);        }    }    private _onBtnBack() {        //销毁        this.gameOverDt.clearData();        this.hide(false);        director.loadScene("StartScene");    }}
 |