123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- import { assetManager, Node, ProgressBar, TextAsset, _decorator } from 'cc';
- import { BaseLayer } from '../../common/BaseLayer';
- import { constants } from '../data/constants';
- import { audioManager } from '../manager/audioManager';
- import { designManager } from '../manager/designManager';
- import { iconManager } from '../manager/iconManager';
- import { layerManager } from '../manager/layerManager';
- import { levelManager } from '../manager/levelManager';
- import { resManager } from '../manager/resManager';
- import { sdkManager } from '../manager/sdkManager';
- import { playerModel } from '../model/playerModel';
- const { ccclass, property } = _decorator;
- @ccclass('LoadingLayer')
- export class LoadingLayer extends BaseLayer {
- progressBar: ProgressBar;
- progress: number = 0;
- percentNode: Node;
- flagNode: Node;
- progressLength: number = 500;
- startGap: number = 250;
- designResProgress: number = 0;
- designResPercent: number = 0.3;
- audioResProgress: number = 0;
- audioResPercent: number = 0.3;
- commonResLayerProgress: number = 0;
- commonResLayerPercent: number = 0.1;
- commonResIconProgress: number = 0;
- commonResIconPercent: number = 0.1;
- commonResLevelProgress: number = 0;
- commonResLevelPercent: number = 0.2;
- onLoad() {
- sdkManager.instance.init(()=>{
- sdkManager.instance.sendEvent("进入加载页");
- });
- super.onLoad();
- this.percentNode = this.getNodeByPath("progressBar/percent");
- this.setString(this.percentNode, "0%");
- this.progressBar = this.getNodeByPath("progressBar").getComponent(ProgressBar);
- this.setProgressBar(this.progressBar, this.progress);
- this.flagNode = this.getNodeByPath("progressBar/flag");
- let pos = this.flagNode.getPosition();
- pos.x = -this.startGap;
- this.flagNode.setPosition(pos);
- }
- onEnable() {
- this.loadDesignRes();
- this.loadAudioRes();
- assetManager.loadBundle(constants.bundles.common.name, (err, retBundle) => {
- this.loadCommonIconRes();
- this.loadCommonLevelRes();
- this.loadCommonLayerRes();
- });
- }
- onDisable() {
- }
- loadAudioRes() {
- // 加载音频
- audioManager.instance.loadAudio((finish: number, total: number) => {
- this.audioResProgress = finish / total;
- }, () => {
- this.audioResProgress = 1;
- });
- }
- loadDesignRes() {
- // 加载策划表格数据
- resManager.instance.loadAssetByBundleDir(constants.bundles.design.name, constants.bundles.design.dir.common, TextAsset,
- (finish: number, total: number, item: any) => {
- this.designResProgress = finish / total;
- }, (assetArr) => {
- this.designResProgress = 1;
- for (let i in assetArr) {
- let asset = assetArr[i];
- designManager.instance.initTable(asset.name, asset.text.split("\n"));
- resManager.instance.releaseAsset(asset);
- }
- }
- );
- }
- loadCommonLayerRes() {
- // 加载layer资源
- layerManager.instance.loadLayers((finish: number, total: number) => {
- this.commonResLayerProgress = finish / total;
- }, () => {
- this.commonResLayerProgress = 1;
- });
- }
- loadCommonIconRes() {
- // 加载需要动态替换的图标资源
- iconManager.instance.loadAllIcons((finish: number, total: number, item: any) => {
- this.commonResIconProgress = finish / total;
- }, () => {
- this.commonResIconProgress = 1;
- });
- }
- loadCommonLevelRes() {
- // 加载当前关卡数据
- levelManager.instance.loadLevel(playerModel.instance.getLevel(), (finish, total) => {
- this.commonResLevelProgress = finish / total;
- }, () => {
- this.commonResLevelProgress = 1;
- });
- }
- openStartLayer() {
- // 额外加载
- // skillManager.instance.loadAllSkillEffect();
- this.openLayer(constants.layers.StartLayer);
- this.closeLayer();
- }
- onButtonClick(node: Node, name: String) {
- switch (name) {
- default:
- break;
- }
- }
- update() {
- let progress = this.designResProgress * this.designResPercent
- + this.audioResProgress * this.audioResPercent
- + this.commonResLayerProgress * this.commonResLayerPercent
- + this.commonResIconProgress * this.commonResIconPercent
- + this.commonResLevelProgress * this.commonResLevelPercent;
- if (progress > this.progressBar.progress) {
- this.setProgressBar(this.progressBar, progress);
- this.setString(this.percentNode, Math.ceil(progress * 100) + "%");
- let pos = this.flagNode.getPosition();
- pos.x = progress * this.progressLength - this.startGap;
- this.flagNode.setPosition(pos);
- }
- if (progress >= 1) {
- this.openStartLayer();
- }
- }
- }
|