Files
fc/dev/project/library/imports/6a/6ac98509-f16d-4aa8-a583-eb3b30f44f40.js
T

336 lines
8.3 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '6ac98UJ8W1KqKWD6zsw9E9A', 'gamestart');
// Scripts/gamestart.js
"use strict";
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
// 主场景的入口
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
require("global");
require("client");
// Nx框架接入
var CFG = require("config");
var BDef = require("bridge.define");
var NxEntry = require("nx.entry");
var FFTimer = require("timer_help");
var FFSDK = require("ff_sdk");
var RoleController = require("role_controller");
// if( !CC_EDITOR && !cc.sys.isBrowser ) {
// if( !CC_EDITOR ) {
// window.onerror = function( message, source, lineno, colno, error ) {
// console.log( "onerror!" );
// let txt = message;
// if( error ) {
// txt = error.message + "\n" + error.stack;
// }
// var url = "http://twsa.qa.fitfun.net:8310/upload_file.php";
// var xhr = new XMLHttpRequest();
// xhr.open( "post", url );
// xhr.setRequestHeader( "Content-Type", "application/json" );
// xhr.send( txt );
// alert( txt );
// };
// }
if (cc.sys.isNative) {
window.__errorHandler = function (errorMessage, file, line, message, error) {
if (!window.nx || !nx.logger || !nx.bridge) {
return;
}
// 上传地址无效
var url = nx.bridge.vget("bugURL");
if (nx.dt.strEmpty(url)) {
console.log("BUG提交失败,地址为空...");
return;
}
console.log("BUG提交中..." + url);
nx.logger.bugUpload(url, {
errorMessage: errorMessage,
file: file || "",
line: line || "",
message: message || "",
error: error || ""
});
};
}
cc.Class({
"extends": cc.Component,
properties: {
bg: {
"default": null,
type: cc.Node
},
views: {
"default": null,
type: cc.Node
},
gfont: {
"default": null,
type: cc.Font
}
},
onLoad: function onLoad() {
console.log("ffengine gameStart.onLoad");
// 引擎模块载入
NxEntry.install( /*this.nodeScene, this.nodeUI*/);
window.game = this;
this.configs = {};
// 重启处理
this.doRestart();
// 前后台切换
this.inback = false;
this.dtback = cc.sys.now();
this.isMainScene = true;
cc.game.on(cc.game.EVENT_HIDE, this.onGameHide, this);
cc.game.on(cc.game.EVENT_SHOW, this.onGameShow, this);
// 返回按键监听
cc.systemEvent.on("keyup", this.onKeyDone, this);
// 切场景不卸载
cc.game.addPersistRootNode(this.node);
},
// 销毁
onDestroy: function onDestroy() {
// 前后台切换
cc.game.off(cc.game.EVENT_HIDE, this.onGameHide, this);
cc.game.off(cc.game.EVENT_SHOW, this.onGameShow, this);
// 返回按键监听解除
cc.systemEvent.off("keyup", this.onKeyDone, this);
// 引擎卸载
NxEntry.uninstall();
},
start: function start() {
// 本地化
this.localization();
},
// 本地化
localization: function localization() {
var _this = this;
nx.gui.setActive(this.bg, "", true);
// 设置语言标识
var key = nx.frame.vget("LocalLanguage");
this.setLanguage(key, function (_ret) {
_this.fetchOSS();
});
},
// 获取配置
fetchOSS: function fetchOSS() {
var _this2 = this;
nx.bridge.remote.fetch(function (_err) {
if (_err) {
nx.mbox(nx.fmtError(_err), ['confirm'], function () {
nx.restart();
});
return;
}
// 埋点重置
if (nx.mTrace) {
nx.mTrace.trace(1001, "", "", nx.dt.fnEmpty, true);
}
// 热更
_this2.tryHotUpdate();
});
},
// 热更
tryHotUpdate: function tryHotUpdate() {
if (!FFSDK.getInstance().isEnableSDK()) {
this.launchDone();
return;
}
var mark = nx.storage.get("FCSkipUpdate", "");
if (mark != "") {
nx.frame.vset("HotVersion", mark);
nx.storage.set("FCSkipUpdate", "");
this.launchDone();
return;
}
nx.bridge.setGS(BDef.GameStage.HotUpdate);
},
// 启动完毕
launchDone: function launchDone() {
var _this3 = this;
var times = nx.storage.getNumber("FCLauchTimes", 0);
if (nx.dt.numPositive(times, false)) {
nx.bridge.setGS(BDef.GameStage.Login);
} else {
nx.bridge.setGS(BDef.GameStage.LaunchAnim);
}
nx.storage.set("FCLauchTimes", ++times);
window.setTimeout(function () {
nx.gui.setActive(_this3.bg, "", false);
}, 3000);
},
// 切入登录
enterLogin: function enterLogin(_restart) {
if (_restart === void 0) {
_restart = false;
}
if (FFSDK.getInstance().isEnableSDK()) {
FFSDK.getInstance().logOut();
}
if (_restart) {
nx.restart();
return;
}
nx.assets.uncacheAssets();
client.socket.close("relogin");
nx.bridge.setGS(BDef.GameStage.Login);
},
// 帧更新
update: function update(dt) {
// 消息处理
if (client.socket) {
client.socket.handleMsg();
}
// SDK
FFTimer.getInstance().onUpdate(dt);
},
// 帧更新
lateUpdate: function lateUpdate() {
// SDK
FFTimer.getInstance().onLateUpdate();
},
// 设置语种
setLanguage: function setLanguage(_key, _cb) {
var _this4 = this;
nx.bridge.setLang(_key);
// 重载文本库
nx.text.ready(function (_err) {
nx.dt.fnInvoke(_cb);
});
// 重载字体
var path = cc.path.join("locals", nx.getLocLanguage(), "font");
nx.res.loadFont(path, function (_err, _font) {
if (!_err) {
_this4.gfont = _font;
nx.frame.vset("LocalFont", path);
}
}, cc.Font);
},
// 重启处理
doRestart: function doRestart() {
// 缓存清理
if (nx && nx.assets) {
nx.assets.uncacheAssets(true);
}
// SOCKET断开&&重新初始化一次
if (client && client.socket) {
client.socket.close("restart");
client.socket.init();
}
// 事件监听清空
if (gcore && gcore.GlobalEvent) {
gcore.GlobalEvent._evt_idx = 0;
gcore.GlobalEvent._evt_list = {};
}
},
// 切前台
onGameShow: function onGameShow() {
// 已经在前台,不重复处理
if (!this.inback) {
return;
}
// 300秒重启游戏
var ms = cc.sys.now() - this.dtback;
if (ms > 1000 * 300) {
nx.restart();
return;
}
// 音乐恢复
this.inback = false;
nx.audio.resumeAll();
},
// 切后台
onGameHide: function onGameHide() {
// 已经在后台,不重复处理
if (this.inback) {
return;
}
// 记录时间
this.inback = true;
this.dtback = cc.sys.now();
// 音乐暂停
nx.audio.pauseAll();
},
// 按键捕获
onKeyDone: function onKeyDone(_event) {
if (cc.macro.KEY.back != _event.keyCode && cc.macro.KEY.escape != _event.keyCode) {
return;
}
// 否则提示退出游戏
nx.mbox("AskQuitGame", ["no", "yes"], function (_key, _box) {
_box.close();
if (_key == "yes") {
nx.appQuit();
}
}, "AskQuitGameTag");
},
runMainScene: function runMainScene() {
var _this5 = this;
if (this.isMainScene) {
return;
}
this.isMainScene = true;
console.log("首次进入游戏------");
// nx.bridge.closePanel("WndBattleScene");
cc.director.loadScene("main_scene", function () {
// 首次进入引导
var role = RoleController.getInstance().getRoleVo();
if (role && role.lev <= 1 && nx.dt.arrEmpty(nx.bridge.plot.records.ids)) {
nx.debug("$GAME:进入首次引导场景...");
nx.bridge.createPanel(BDef.StageScene[BDef.GameStage.First]);
return;
}
// 新界面展示
nx.bridge.createPanel(BDef.StageScene[BDef.GameStage.Game]);
_this5.scheduleOnce(function () {
//界面回溯
nx.bridge.resetTag2PanelfromBat();
}, 0.1);
});
},
runBattleScene: function runBattleScene(_params) {
if (!this.isMainScene) {
return;
}
this.isMainScene = false;
console.log("首次进入游戏战斗场景------");
// nx.bridge.createPanel("WndBattleScene", _params );
cc.director.loadScene("battle_scene", function () {
nx.bridge.createPanel("WndBattleScene", _params);
});
}
});
cc._RF.pop();