1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { LQCollide } from "./Collide/lq_collide_system/lq_collide";
- import { ConfigMgr } from "./game/cfg/configMgr";
- import { Nest } from "./game/monster/nest";
- import { ResMgr } from "./resMgr";
- let pass = 5;
- enum LevelState {
- none,
- loading,
- playing,
- }
- /**
- * 1 切换关卡
- */
- export class LevelMgr {
- parent: cc.Node;
- title: cc.Label;
- passCnt: number = 0;
- state = LevelState.none;
- private static _inst: LevelMgr;
- public static get inst(): LevelMgr {
- if (this._inst == null) {
- this._inst = new LevelMgr();
- this._inst.init();
- }
- return this._inst;
- }
- init(){
- cc.director.getScheduler().enableForTarget(this);
- cc.director.getScheduler().schedule(this.update, this, 1, cc.macro.REPEAT_FOREVER, 0, false);
- }
- update(dt){
- if(this.state != LevelState.playing) return;
- if(this.parent.getComponentsInChildren(LQCollide).length > 0) return;
- this.next();
- }
- end(){
- cc.director.getScheduler().unschedule(this.update,this);
- }
-
- async begin(){
- this.passCnt = 0;
- this.load();
- // let level = 1;
- // let node = await ResMgr.inst.loadPrefab(`level/levelEmpty`, this.parent);
- // let levelView = node.getComponent(levelempty);
- // let levelData = ConfigMgr.inst.getCfgById('level', level);
-
- // let nestData = ConfigMgr.inst.getCfgById('nest', levelData.nest);
- // let nestCreator = new Nest(nestData, levelView.$top_node);
- // nestCreator.begin();
- }
- next(){
- this.passCnt ++;
- if(this.passCnt >= pass) return;
- this.load();
- }
-
- private load() {
- this.state = LevelState.loading
- this.title.string = `level${this.passCnt + 1}`;
- this.parent.destroyAllChildren();
- ResMgr.inst.loadPrefab(`level/level${this.passCnt + 1}`, this.parent).then(()=>{
- this.state = LevelState.playing;
- });
- }
- }
|