123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /**
- * 界面相关的工具
- */
- module.exports = {
- _sceneInitParams: undefined,
- _lastSceneName: undefined,
- getSceneCtrl () {
- return cc.director.getScene().getChildByName('ctrl').getComponent('SceneCtrlBase');
- },
- /**
- * 进入指定场景(显示load进度)
- *
- * @author Pyden
- * @date 2019-05-05
- * @param {String} sceneName 场景名称
- * @param {Any} paAlertCtrlrams 场景初始化的参数
- */
- loadScene (sceneName, params) {
- G.LogUtils.warn('loadScene', sceneName);
- this._sceneInitParams = params;
- G.AppUtils.getSceneCtrl().showLoadingAlert();
- let temp = undefined;
- cc.director.preloadScene(sceneName, (completedCount, totalCount, item)=>{
- temp = this.getLoadProgressInfo(temp, completedCount, totalCount);
- this.getSceneCtrl().updateLoadingProgress(temp.precent * 100, 100, item);
- }, (error, asset) => {
- if (error) {
- G.AppUtils.getSceneCtrl().addToast('网络异常!');
- } else {
- // 加载完毕
- cc.director.loadScene(sceneName);
- }
- });
- },
- /**
- * 进入指定场景(不显示load进度)
- *
- * @author libo
- * @date 2019-06-17
- * @param {String} sceneName 场景名称
- * @param {Any} params 场景初始化的参数
- */
- runScene (sceneName, params) {
- this._sceneInitParams = params;
- cc.director.loadScene(sceneName);
- },
- /**
- * 获取加载进度信息
- *
- * @author Pyden
- * @date 2019-08-27
- * @param {Map} tempInfo
- * @param {Integer} completedCount
- * @param {Integer} totalCount
- * @returns {Map}
- */
- getLoadProgressInfo (tempInfo, completedCount, totalCount) {
- if (!tempInfo) {
- tempInfo = {
- precent: 0,
- realPrecent: 0,
- completedCount: 0,
- totalCount: 0,
- lastPrecent: 0,
- lastCompletedCount: 0,
- tickTimes: 0
- };
- }
- tempInfo.tickTimes = tempInfo.tickTimes + 1;
- let tickPrecent = Math.min(tempInfo.tickTimes / 100, 0.4);
- if (totalCount == 0) {
- tempInfo.precent = tickPrecent;
- return tempInfo;
- }
- if (totalCount == completedCount) {
- tempInfo.precent = 1;
- return tempInfo;
- }
- if (totalCount > tempInfo.totalCount) {
- tempInfo.lastCompletedCount = tempInfo.completedCount;
- tempInfo.lastPrecent = tempInfo.realPrecent;
- }
- // tempInfo.lastPrecent变更后,每个文件累加的进度值
- let pie = (1 - tempInfo.lastPrecent) / (totalCount - tempInfo.lastCompletedCount);
- tempInfo.realPrecent = tempInfo.lastPrecent + (completedCount - tempInfo.lastCompletedCount) * pie;
- tempInfo.completedCount = completedCount;
- tempInfo.totalCount = totalCount;
- tempInfo.precent = Math.max(tempInfo.realPrecent, tickPrecent);
- return tempInfo;
- },
- /**
- * 获取场景初始化的参数
- *
- * @author Pyden
- * @date 2019-05-05
- * @returns {Any}
- */
- getSceneInitParams () {
- return this._sceneInitParams;
- },
- /**
- * 获取最后的场景名称
- *
- * @author Pyden
- * @date 2019-07-17
- * @returns {String}
- */
- getLastSceneName () {
- return this._lastSceneName;
- },
- /**
- * 获取最后的场景名称
- *
- * @author Pyden
- * @date 2019-07-17
- * @param {String} value
- */
- setLastSceneName (value) {
- this._lastSceneName = value;
- },
- /**
- * 将左下角为原点的坐标转化为中心点为原点的坐标
- *
- * @author libo
- * @date 2019-04-09
- * @param {cc.v2} pos
- * @returns
- */
- convertLeftHandToUiPos (pos) {
- return cc.v2(pos.x - (cc.view.getVisibleSize().width / 2), pos.y - (cc.view.getVisibleSize().height / 2));
- },
- /**
- * 暂停游戏
- *
- * @author libo
- * @date 2019-08-07
- */
- pauseGame () {
- cc.audioEngine.pauseAllEffects();
- cc.audioEngine.pauseMusic();
- // 暂停游戏停止心跳同步
- G.LoginMgr._stopKeepalive();
- cc.game.pause();
- },
- /**
- * 恢复游戏
- *
- * @author libo
- * @date 2019-08-07
- */
- resumeGame () {
- let effect = G.SettingMgr.getSettingStatusByType(JMC.LS_KEY.SETTING_SOUND);
- let music = G.SettingMgr.getSettingStatusByType(JMC.LS_KEY.SETTING_MUSIC);
- if (effect) {
- cc.audioEngine.resumeAllEffects();
- }
- if (music) {
- cc.audioEngine.resumeMusic();
- }
- cc.game.resume();
- G.AudioMgr.playMusic(G.AppUtils.getSceneCtrl().musicName, true);
- // 恢复游戏恢复心跳同步
- G.LoginMgr._startKeepalive();
- }
- };
|