12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { _decorator } from 'cc';
- import { ModuleDef } from '../../scripts/ModuleDef';
- import { GameUILayers } from '../../scripts/GameUILayers';
- import { Layout_UIGameRevive } from './Layout_UIGameRevive';
- import { GameMgr } from '../../module_basic/scripts/GameMgr';
- @tgx_class(ModuleDef.GAME)
- export class UIGameRevive extends tgx.UIController {
- private _endTime = 0;
- constructor() {
- super('ui_game_revive/ui_game_revive', GameUILayers.POPUP, Layout_UIGameRevive);
- // + 500ms 用于延迟显示,用于消除网络延时带来的视觉误差
- // + 500ms used to delay display, to eliminate visual error caused by network latency
- this._endTime = Date.now() + GameMgr.inst.selfPlayer.reviveTime + 500;
- }
- protected onCreated(): void {
- }
- protected onUpdate(dt: number): void {
- if (GameMgr.inst.selfPlayer?.reviveTime <= 0) {
- this.close();
- return;
- }
- let layout = this._layout as Layout_UIGameRevive;
- let remainingTime = Math.ceil((this._endTime - Date.now()) / 1000);
- if (remainingTime < 0) {
- remainingTime = 0;
- }
- if (remainingTime < 60) {
- layout.lblTime.string = remainingTime + 's';
- }
- else {
- let s = remainingTime % 60;
- let m = Math.floor(remainingTime / 60);
- layout.lblTime.string = m + 'm' + s + 's';
- }
- }
- }
|