import { Component, game, UIRenderer, _decorator, Game, SpriteFrame, ProgressBar } from 'cc'; import { ViewID } from '../framework/config/LayerConf'; import { Framework } from '../framework/Framework'; import { GameEvent } from './data/GameEvent'; import { MaterialUtil } from '../framework/util/MaterialUtil'; import { NetManager } from './common/NetManager'; import { FrameworkConf } from '../framework/config/FrameworkConf'; import { resLoader } from '../framework/res/ResLoader'; const { ccclass, property } = _decorator; export let NetMgr: NetManager = null; //临时解决透明度为0还会渲染的bug // UIRenderer.prototype.updateAssembler = function updateAssembler(render: any) { // if (this._renderDataFlag) { // this._assembler!.updateRenderData(this, render); // this._renderDataFlag = false; // } // if (render._pOpacity > 0 && this._renderFlag) { // // console.log(render); // this._render(render); // } // } game.frameRate = 59; // 获取URL参数的函数 function getParameterByName(name) { let url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`); const results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); // return results[2].replace(/\+/g, ' ') } @ccclass('Main') export class Main extends Component { private _uid = ""; //切换后台的起始时间 单位ms hideTime = 0; //重连的时间 超过2秒就重连 单位ms reconnectTime = 2000; onLoad() { Framework.event.addEvent(FrameworkConf.Event.GAME_SHOW, this.gameEvent_onShow, this); Framework.event.addEvent(FrameworkConf.Event.GAME_HIDE, this.gameEvent_onHide, this); let loginbg = this.node.getChildByPath('loginbg'); let loadRes = [ 'bomb/game/icon_1' ]; let loadNum = 0; let maxLoadNum = loadRes.length; // + MaterialUtil.init资源数量 let finishBack = () => { loadNum++; if (loadNum >= maxLoadNum) { } }; //MaterialUtil.init(finishBack); for (let index = 0; index < loadRes.length; index++) { const element = loadRes[index]; let path = `texture/${element}/spriteFrame` resLoader.load('package', path, SpriteFrame, (error: Error, res: SpriteFrame) => { if (!error) { finishBack(); } }); } // Framework.layer.open(ViewID.TowerUI, null,{}); Framework.layer.open(ViewID.ZombieUI, null,{}); // this.connect() } connect() { // Framework.layer.open(ViewID.MainUI, () => { // this.node.getChildByPath('UICamera/loginbg').destroy(); // }); // if (NetMgr) { // console.log("NetMgr.is_connect:", NetMgr.is_connect); // NetMgr.close(true); // return; // } // else { // NetMgr = new NetManager(); // } let wsUrl = getParameterByName('wss_url'); let auth_key = getParameterByName('auth_key'); let auth_time = getParameterByName('auth_time'); let uid = getParameterByName('uid'); let serverOpenId = getParameterByName('serverOpenId'); // let hallNoOpen = 1; if (!wsUrl) { // 开发阶段,没有接入大厅 wsUrl = "ws://172.31.244.30:51008"; auth_key = "7c534a5a85"; auth_time = "1716114388"; serverOpenId = "hell"; uid = uid || "10000052"; } console.log("wsUrl=:", wsUrl); console.log("auth_key:", auth_key); console.log("auth_time:", auth_time); console.log("serverOpenId:", serverOpenId); console.log("uid:", uid); // // setp-1 和子服务器建立连接 // NetMgr.connect(wsUrl, (code) => { // if (code != 0) return // console.log('建立连接uid=1=1==', uid); // let req1 = { // mod: 'user', // act: 'handshake', // args: { // 'auth_key': auth_key, // 'auth_time': auth_time, // //'openid': serverOpenId, // }, // uid: uid, // } // console.log('建立连接', req1); // NetMgr.send(req1);// 握手消息,返回在netmanger里面处理 // }) // game.on(Game.EVENT_SHOW, () => { // console.log('游戏显示'); // Framework.event.fireEvent(GameEvent.Game_Show) // }); // // 游戏隐藏事件 // game.on(Game.EVENT_HIDE, () => { // console.log(); ("游戏隐藏"); // }); } gameEvent_onShow() { let time = Date.now() - this.hideTime if(time > this.reconnectTime){ this.connect() } } gameEvent_onHide() { this.hideTime = Date.now() } }