123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import GameLogic from "../gameLogic/gameLogic";
- import bundleManager from "./bundleManager";
- class levelManager {
- private _levelPrefab: cc.Node = null;
- private _curOpenID: number;
- remove() {
- if (this._levelPrefab) {
- // this._levelPrefab.destroy();
- // this._levelPrefab = null
- this._levelPrefab.active = false;
- }
- }
- open(id: number, callback?: Function, new_ = false) {
- console.log('zh:LM.ts open 1' )
- if (this._levelPrefab && this._curOpenID == id && !new_) {
- this._levelPrefab.active = true;
- callback && callback();
- return;
- }
- let self = this;
- self.saveCurOpenID(id);
- console.log('zh:LM.ts open 2' )
- let bundleName = this.getBundleNameByLevel(id);
- setTimeout(() => {
- console.log('zh:LM.ts open 3,level=',id,bundleName )
- bundleManager.getBundleByName(bundleName).load('level' + id, cc.Prefab, function (err, prefab: cc.Prefab) {
- if (prefab) {
- let node = cc.instantiate(prefab);
- var cavans = cc.director.getScene().getChildByName('world')
- node.parent = cavans;
- // node.zIndex = 200
- // self.remove();
- self._levelPrefab && self._levelPrefab.destroy();
- self._levelPrefab = node;
- cavans.getComponent(GameLogic).init(node,new_);
- if (callback) {
- callback(node);
- }
- }
- })
- }, 50);
- }
- private getBundleNameByLevel(level) {
- if (level <= 2) {
- return 'levels'
- } else {
- return 'level' + level;
- }
- }
- preLoadLevel(level: number) {
- console.log('zh:预加载关卡 level=' + level);
- bundleManager.getBundleByName('levels').preload('level' + level, cc.Prefab, () => {
- console.log('预加载关卡' + level + '完成');
- });
- }
- /**
- * 保存当前打开的关卡ID
- * @param id 关卡ID
- */
- saveCurOpenID(id: number) {
- this._curOpenID = id;
- }
- /**
- *
- * @returns 获取当前打开的关卡ID
- */
- getCurOpenId() {
- return this._curOpenID;
- }
- }
- export default new levelManager();
|