import LoadingView from "./View/Logo/LoadingView"; import AppPlatform from "./Util/AppPlatform"; import AppConfig from "./Config/AppConfig"; import { LogUtils } from "./Util/LogUtils"; import BundleMgr from "./Mgr/BundleMgr"; import GameMgr from "./Mgr/GameMgr"; import User from "./User/User"; import EventMgr from "./Event/EventMgr"; import { ryw_Event } from "./Event/EventEnum"; import Common5 from "../Platform/th/Common5"; import CommonDefine from "../Platform/th/CommonDefine"; import GameReport, { ENTERTYPE } from "./Report/ZyZyReport"; import GEMgr from "./Mgr/GEMgr"; const { ccclass, property } = cc._decorator; /** * 主页场景 */ @ccclass export default class Main extends cc.Component { public static isBack_custom: boolean = false; //是否从后台回到前台 @property(cc.Node) private persistRootNode:cc.Node = null //加载页面 @property({ tooltip: "加载页面预支", type: cc.Node }) private loadingPrefab: cc.Node = null; //----------------- private loadView_custom: LoadingView; //加载分包的进度最终位置 private readonly loadSubpackageTotal_custom: number = 0.8; //网络加载的最终位置 private readonly loadHttpNetworkTotal_custom: number = 1; //当前加载的分包下标 private subpackageIndex_custom: number = 0; //公共的包大小 private subpackageSum_custom: number = 0; //下一步要到达的进度最大值(0-1) private needProcessNum_custom: number = 0; //加载的状态 0未开始 1加载正常进度 2加载慢慢速度 3结束,进度条快速完成 4等待加载场景 private loadingState_custom: number = 0; //速度 private loadingSpeed_custom: number = 0; async onLoad() { // cc.game.setFrameRate(60) this.wdyjrjsdkInit(); // if(AppPlatform.isOtherGame()){ // let res = await CommonDefine.checkInitFromServer(); // console.log(res) // if(!res){ // return; // } // } if (AppPlatform.is_TT_GAME_custom()) { console.log = ()=>{} console.warn = ()=>{} console.error = ()=>{} Common5.ISSHOWGM = false AppConfig.AppID_custom = AppConfig.TT_APP_ID_custom; AppConfig.state_custom = AppConfig.TT_state_custom; AppConfig.gameid_custom = AppConfig.TT_gameid_custom; AppConfig.ResServer_custom = AppConfig.TT_ResServer_custom; AppConfig.Versions_custom = AppConfig.TT_Versions_custom; AppConfig.UseRYSDK_custom = false; AppConfig.LoopAdLocationID_custom = AppConfig.TT_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.TT_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.TT_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.TT_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.TT_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.TT_MoreGameLocationID_custom; } else if (AppPlatform.is_WECHAT_GAME_custom()) { Common5.ISSHOWGM = false AppConfig.AppID_custom = AppConfig.WX_APP_ID_custom; AppConfig.state_custom = AppConfig.WX_state_custom; AppConfig.gameid_custom = AppConfig.WX_gameid_custom; AppConfig.ResServer_custom = AppConfig.WX_ResServer_custom; AppConfig.Versions_custom = AppConfig.WX_Versions_custom; AppConfig.UseRYSDK_custom = true; if (AppConfig.closeUseRYSDK_custom) {//强制关闭的情况 AppConfig.UseRYSDK_custom = false; } AppConfig.LoopAdLocationID_custom = AppConfig.WX_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.WX_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.WX_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.WX_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.WX_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.WX_MoreGameLocationID_custom; } else if (AppPlatform.is_QQ_PLAY_custom()) { AppConfig.AppID_custom = AppConfig.QQ_APP_ID_custom; AppConfig.state_custom = AppConfig.QQ_state_custom; AppConfig.gameid_custom = AppConfig.QQ_gameid_custom; AppConfig.ResServer_custom = AppConfig.QQ_ResServer_custom; AppConfig.Versions_custom = AppConfig.QQ_Versions_custom; AppConfig.UseRYSDK_custom = false; AppConfig.LoopAdLocationID_custom = AppConfig.QQ_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.QQ_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.QQ_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.QQ_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.QQ_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.QQ_MoreGameLocationID_custom; } else if (AppPlatform.is_OPPO_GAME_custom()) { AppConfig.AppID_custom = AppConfig.OPPO_APP_ID_custom; AppConfig.state_custom = AppConfig.OPPO_state_custom; AppConfig.gameid_custom = AppConfig.OPPO_gameid_custom; AppConfig.ResServer_custom = AppConfig.OPPO_ResServer_custom; AppConfig.Versions_custom = AppConfig.OPPO_Versions_custom; AppConfig.UseRYSDK_custom = false; AppConfig.LoopAdLocationID_custom = AppConfig.OPPO_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.OPPO_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.OPPO_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.OPPO_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.OPPO_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.OPPO_MoreGameLocationID_custom; } else if (AppPlatform.is_VIVO_GAME_custom()) { AppConfig.AppID_custom = AppConfig.VIVO_APP_ID_custom; AppConfig.state_custom = AppConfig.VIVO_state_custom; AppConfig.gameid_custom = AppConfig.VIVO_gameid_custom; AppConfig.ResServer_custom = AppConfig.VIVO_ResServer_custom; AppConfig.Versions_custom = AppConfig.VIVO_Versions_custom; AppConfig.UseRYSDK_custom = false; AppConfig.LoopAdLocationID_custom = AppConfig.VIVO_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.VIVO_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.VIVO_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.VIVO_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.VIVO_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.VIVO_MoreGameLocationID_custom; } else if (AppPlatform.is_Android_custom() || AppPlatform.is_Iphone_custom()) {//android AppConfig.AppID_custom = AppConfig.APK_APP_ID_custom; AppConfig.state_custom = AppConfig.APK_state_custom; AppConfig.gameid_custom = AppConfig.APK_gameid_custom; AppConfig.ResServer_custom = AppConfig.APK_ResServer_custom; AppConfig.Versions_custom = AppConfig.APK_Versions_custom; AppConfig.UseRYSDK_custom = false; } else {//其他开发 用微信的 AppConfig.AppID_custom = AppConfig.TT_APP_ID_custom; AppConfig.state_custom = AppConfig.TT_state_custom; AppConfig.gameid_custom = AppConfig.TT_gameid_custom; AppConfig.ResServer_custom = AppConfig.TT_ResServer_custom; AppConfig.Versions_custom = AppConfig.TT_Versions_custom; AppConfig.UseRYSDK_custom = false;//开发模式不支持 AppConfig.LoopAdLocationID_custom = AppConfig.TT_LoopAdLocationID_custom; AppConfig.BannerAdLocationID_custom = AppConfig.TT_BannerAdLocationID_custom; AppConfig.InsertAdLocationID_custom = AppConfig.TT_InsertAdLocationID_custom; AppConfig.AniAdLocationID_custom = AppConfig.TT_AniAdLocationID_custom; AppConfig.HistoryLocationID_custom = AppConfig.TT_HistoryLocationID_custom; AppConfig.MoreGameLocationID_custom = AppConfig.TT_MoreGameLocationID_custom; } this.loadView_custom = this.loadingPrefab.getComponent(LoadingView); this.subpackageSum_custom = AppConfig.subResArray_custom.length; this.loadView_custom.setProcess_custom(0); // GameReport.EnterReport(ENTERTYPE.TIAOZHUAN, '加载本地json') AppPlatform.checkUpdate_custom(); Common5.shiJianChuo = new Date().getTime() console.log('Common5.shiJianChuo==',Common5.shiJianChuo) Common5.loadConfigLocal_custom(()=>{ this.loadSubpackage_custom(); }); } start() { //添加常驻节点 cc.game.addPersistRootNode(this.persistRootNode) } /** * 加载分包 */ private loadSubpackage_custom() { var self = this; //有分包没有加载完成 if (this.subpackageIndex_custom < this.subpackageSum_custom) { let platform = ""; let subpackageName = AppConfig.subResArray_custom[this.subpackageIndex_custom]; if (AppPlatform.is_TT_GAME_custom()) { platform = "tt"; } else if (AppPlatform.is_WECHAT_GAME_custom()) { platform = "wx"; } else if (AppPlatform.is_OPPO_GAME_custom()) { platform = "qg"; } else if (AppPlatform.is_QQ_PLAY_custom()) { platform = "qq"; } LogUtils.log_custom("加载分包 " + subpackageName + " platform " + platform); let proSum = ((this.subpackageIndex_custom + 1) / this.subpackageSum_custom) * self.loadSubpackageTotal_custom; this.setStartLoadingPerNum_custom(proSum) BundleMgr.loadBundleByName_custom(subpackageName, handleFM_custom((err, bundle) => { if (err) { console.error(err); } else { self.subpackageIndex_custom = self.subpackageIndex_custom + 1; AppPlatform.loadSubpackageFinish_custom(subpackageName); self.loadSubpackage_custom(); } let time = new Date().getTime() console.log('shaoyang_加载完成当前bundle',subpackageName,time- Common5.shiJianChuo) }, this)); // } } else {//加载完成了 //this.setStartLoadingPerNum(this.loadSubpackageTotal) console.log('加载完成+++===全部bundle') // GameReport.EnterReport(ENTERTYPE.TIAOZHUAN, 'loading加载完毕') this.onLoadResComplate_custom();//预加载完成 } } /** * 设置下一个加载步骤可以到的位置 * @param preNum */ private setStartLoadingPerNum_custom(preNum: number) { this.setLoadingState_custom(1, preNum); } /** * 设置加载的进度状态 * @param state */ private setLoadingState_custom(state: number, preNum: number) { this.loadingState_custom = state; this.needProcessNum_custom = preNum; switch (state) { case 0: break; case 1: this.loadingSpeed_custom = 1 / 80; break; case 2: this.loadingSpeed_custom = 1 / 200; break; case 3://下载完成了 { let precess = this.loadView_custom.getProcess_custom(); let psum = 1 - precess; if (psum > 0) { this.loadingSpeed_custom = psum / 20; } else { this.loadingSpeed_custom = 1 / 2; } } break; default: break; } } /** * 假的进度 * @param dt */ protected update(dt: number): void { if (this.loadView_custom) { let precess = this.loadView_custom.getProcess_custom(); let nextPrecess = precess + this.loadingSpeed_custom; switch (this.loadingState_custom) { case 0: break; case 1://正常速度 if (nextPrecess >= this.needProcessNum_custom * 0.7) { //nextPrecess = this.needProcessNum * 0.7; if (nextPrecess >= this.needProcessNum_custom) { nextPrecess = this.needProcessNum_custom; } //进入慢速度 this.setLoadingState_custom(2, this.needProcessNum_custom); } break; case 2://慢速度 if (nextPrecess >= this.needProcessNum_custom) { nextPrecess = this.needProcessNum_custom; } break; case 3://急速进度 if (nextPrecess >= 1) { nextPrecess = 1; this.loadingState_custom = 4; } break; default: break; } if (precess != nextPrecess) { this.loadView_custom.setProcess_custom(nextPrecess); } } } /** * 设置下载全部完成,可以进游戏了 */ private setDownloadOver_custom() { this.initGame_custom(); this.setLoadingState_custom(3, 1); } /** * 登录失败 */ private Login_fail_custom(res?: any) { console.log("登陆失败!!!" + res); EventMgr.emitEvent_custom(ryw_Event.ryw_PlatformLoginState_custom, { state: 1, info: "平台登录失败" }) let data = cc.sys.localStorage.getItem("data" + AppConfig.AppID_custom); if (data) { console.log("登录失败+++++++++ 有存档"); User.initiUser_custom(JSON.parse(data)); } else { console.log("登录失败+++++++++ 无存档"); User.initiUser_custom(null); } this.setDownloadOver_custom(); } /** * 各个平台登录成功后 来自己服务器登录 * @param code */ private go_Login_custom(code: any) { User.code_custom = code EventMgr.emitEvent_custom(ryw_Event.ryw_PlatformLoginState_custom, { state: 0, info: "平台登录成功" }) console.log("准备登陆自己的平台") // if (AppSwitchConfig.getInstance_custom().getAppSwitchData_custom().isNetWorkGame_custom != 1) { //存本地 let data = cc.sys.localStorage.getItem("data" + AppConfig.AppID_custom); if (data) { console.log("登录成功+++++++++ 有存档"); User.initiUser_custom(JSON.parse(data)); } else { //无数据-重试 data = cc.sys.localStorage.getItem("data" + AppConfig.AppID_custom); if (data) { console.log("登录成功+++++++++ 有存档"); User.initiUser_custom(JSON.parse(data)); } else { data = cc.sys.localStorage.getItem("data" + AppConfig.AppID_custom); console.log("登录成功+++++++++ 无存档"); User.initiUser_custom(null); } } this.setDownloadOver_custom(); // } // else { // //登录公司服务器 // this.login_custom(); // } } /** * 分包等相关资源全部加载完成了 */ private onLoadResComplate_custom() { // cc.sys.localStorage.clear() var self = this; this.setStartLoadingPerNum_custom(this.loadHttpNetworkTotal_custom); //预加载用到的场景 AppPlatform.loginPlatform_custom(function (code) { //Common5.ReportDY("inLevel", '平台登录code-登录游戏'); //GameReport.EnterReport(ENTERTYPE.TIAOZHUAN, '平台登录code') CommonDefine.loginCode = code self.go_Login_custom(code) }, () => { self.Login_fail_custom(); }, () => { // console.log("pc登录,数据存本地"); //存本地 let data = cc.sys.localStorage.getItem("data" + AppConfig.AppID_custom); if (data) { console.log("分包等相关资源全部加载完成了+++++++++ 有存档"); User.initiUser_custom(JSON.parse(data)); } else { console.log("分包等相关资源全部加载完成了+++++++++ 无存档"); User.initiUser_custom(null); } self.setDownloadOver_custom(); }); if (User.getFirstInNew()) GameMgr.getInstance_custom().preloadScene_custom(); GameReport.setLoadingTime((new Date()).getTime()); GameReport.setStayTime((new Date()).getTime()); //GameReport.init(); } //初始游戏 public initGame_custom() { let time = new Date().getTime() console.log('shaoyang_初始游戏',time- Common5.shiJianChuo) if (AppPlatform.is_WECHAT_GAME_custom()) { console.log("小游戏设置转发按钮"); window["wx"].showShareMenu({ withShareTicket: true, menus:['shareAppMessage','shareTimeline'], success: () => { }, fail: () => { }, complete: () => { } }); window["wx"].onShareAppMessage(function () { return { title: "失败不是终点,而是逆袭的起点,勇往直前,无所畏惧", imageUrlId: '34MEvHptTqaWXBeERMZOCQ==', imageUrl: 'https://mmocgame.qpic.cn/wechatgame/gUGyibricTBrq4SibbbFwNLZ4dX5G4uAcCOkRHgW3KvEzyywMib2uVfqConCdibpFJ4ZS/0' } }); // window["wx"].onShow(function () { // console.log('微信 显示在前台'); // AppPlatform.isBackGameWX = true; // }); //初始化放到后面 let self = this; AppPlatform.loginPlatform_custom(function (code) { //初始 ry sdk console.log('登陆成功,进行初始化'); GameMgr.getInstance_custom().onLoadToWorldScene_custom(); }, null) } else { GameMgr.getInstance_custom().onLoadToWorldScene_custom(); } // this.reportLaunchOptions_custom(); AppPlatform.initGame_custom(); } wdyjrjsdkInit(){ // seeg.init({gid:'tt_cnnxj4'}) ZYSDK.ZYSDK.initSdk() console.log('sdk init success') if (AppPlatform.is_TT_GAME_custom()){ ZYSDK.ZYSDK.getUserId().then((uid)=>{ GEMgr.GEInit(uid) }) } } }