123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- import { _decorator, assetManager, Component, director, game, Label, Prefab, Node, AssetManager, Asset, PhysicsSystem, PhysicsSystem2D, EPhysics2DDrawFlags, AudioClip, ProgressBar } from 'cc';
- import { tgxModuleContext, tgxUIMgr, tgxUITips, tgxUIWaiting } from '../core_tgx/tgx';
- import { GameUILayers, GameUILayerNames } from '../scripts/GameUILayers';
- import { ModuleDef } from '../scripts/ModuleDef';
- import { SceneDef } from '../scripts/SceneDef';
- import { JsonUtil } from '../core_tgx/base/utils/JsonUtil';
- import { GtagMgr, GtagType } from '../core_tgx/base/GtagMgr';
- import { AdvertMgr } from '../core_tgx/base/ad/AdvertMgr';
- import { GlobalConfig } from './Config/GlobalConfig';
- import { GlobalMgr } from '../scripts/GlobalMgr';
- const { ccclass, property } = _decorator;
- const _preloadBundles = [ModuleDef.BASIC, ModuleDef.MODULE_STORM_SUNDER];
- const _preloadRes = [
- { bundle: ModuleDef.BASIC, url: 'ui_alert/UI_Alert', type: 'prefab' },
- { bundle: ModuleDef.BASIC, url: 'ui_tips/UI_Tips', type: 'prefab' },
- { bundle: ModuleDef.BASIC, url: 'ui_waiting/UI_Waiting', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Prefabs/Map', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Prefabs/Blood', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Prefabs/PlayerInfo', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Prefabs/ExpProp', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Prefabs/Levels/lvl_1', type: 'prefab' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/bgm_1.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/bgm_2.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/dianji.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/luosi.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/shengli.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/shibai.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/yidong.mp3', type: 'audio' },
- { bundle: ModuleDef.MODULE_STORM_SUNDER, url: 'Audio/zhuangche.mp3', type: 'audio' },
- ];
- const _loadingText = ['Loading.', 'Loading..', 'Loading...'];
- const _totalNum = _preloadBundles.length + _preloadRes.length + 1;
- @ccclass('Start')
- export class Start extends Component {
- @property(Label)
- txtLoading: Label;
- @property(Prefab)
- uiCanvasPrefab: Prefab;
- // @property(Node)
- // loadingBar: Node;
- @property(ProgressBar)
- loadingBar: ProgressBar = null!;
- private _percent: string = '';
- private _numCurrentLoaded = 0;
- protected onLoad(): void {
- GlobalMgr.instance.initilize();
- // GlobalMgr.instance.timeTest();
- AdvertMgr.instance.initilize();
- if (!GlobalConfig.isDebug) {
- AdvertMgr.instance.showInterstitial();
- }
- }
- start() {
- PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb |
- EPhysics2DDrawFlags.Pair |
- EPhysics2DDrawFlags.CenterOfMass |
- EPhysics2DDrawFlags.Joint |
- EPhysics2DDrawFlags.Shape;
- PhysicsSystem2D.instance.debugDrawFlags = 0; // 启用调试绘制
- tgxModuleContext.setDefaultModule(ModuleDef.BASIC);
- game.frameRate = 60;
- tgxUIMgr.inst.setup(this.uiCanvasPrefab, GameUILayers.NUM, GameUILayerNames);
- this.preloadBundle(0);
- GtagMgr.inst.init();
- this.loadConfig();
- GtagMgr.inst.doGameDot(GtagType.game_start);
- }
- async loadConfig() {
- await this.loadCustom();
- }
- loadCustom() {
- return new Promise(async (resolve, reject) => {
- await JsonUtil.loadDirAsync();
- resolve(null);
- });
- }
- onResLoaded() {
- this._numCurrentLoaded++;
- this._percent = ~~(this._numCurrentLoaded / _totalNum * 100) + '%';
- }
- preloadBundle(idx: number) {
- assetManager.loadBundle(_preloadBundles[idx], null, (err, bundle) => {
- console.log('module:<' + _preloadBundles[idx] + '>loaded.');
- idx++;
- this.onResLoaded();
- if (idx < _preloadBundles.length) {
- this.preloadBundle(idx);
- }
- else {
- this.preloadRes(0);
- }
- });
- }
- preloadRes(idx: number) {
- let res = _preloadRes[idx];
- // console.log('预加载资源:' + res.url);
- let bundle = assetManager.getBundle(res.bundle);
- let onComplete = () => {
- idx++;
- this.onResLoaded();
- if (idx < _preloadRes.length) {
- this.preloadRes(idx);
- }
- else {
- this.onPreloadingComplete();
- }
- }
- if (bundle) {
- if (res.type == 'prefab') {
- bundle.preload(res.url, Prefab, onComplete);
- } else if (res.type == 'audio') {
- bundle.preload(res.url, AudioClip, onComplete);
- }
- }
- }
- onPreloadingComplete() {
- let bundle = assetManager.getBundle(ModuleDef.MODULE_STORM_SUNDER);
- bundle.preloadScene(SceneDef.ROOSTER_STORMSUNDER, () => {
- this.onResLoaded();
- // director.loadScene(SceneDef.MAIN_MENU);
- const info = {
- bundle: 'module_storm_sunder',
- entryScene: 'rooster_stormsunder'
- }
- // tgxUIWaiting.show();
- assetManager.loadBundle(info.bundle, (err, bundle: AssetManager.Bundle) => {
- if (bundle) {
- director.loadScene(info.entryScene, () => {
- tgxUIMgr.inst.hideAll();
- });
- }
- });
- });
- }
- update(deltaTime: number) {
- if (this._percent) {
- this.txtLoading.string = 'Loading...' + this._percent;
- }
- else {
- let idx = Math.floor(game.totalTime / 1000) % 3;
- this.txtLoading.string = _loadingText[idx];
- }
- // this.loadingBar.setScale(this._numCurrentLoaded / _totalNum, 1, 1);
- this.loadingBar.progress = this._numCurrentLoaded / _totalNum;
- }
- }
|