import { BaseView } from "../../../lightMVC/core/base/BaseView"; import { DataManager } from "../../Framework/Manager/DataManager"; import hallScene from "../../hallScene"; import { App } from "../../Manager/App"; import { SoundManager } from "../../Manager/SoundManager"; import TimeControl from "../../TimeControl"; import SuperScrollView from "../SuperScrollview/SuperScrollView"; const { ccclass, property } = cc._decorator; @ccclass export default class ChooseLevelPanel extends BaseView { private list: any[] = []; private levelList: any = null; private nodeList: cc.Node[] = []; private btnList: cc.Node[] = []; private imgList: cc.Node[] = []; private labelExp: cc.Label = null; public drawView(): void { // 返回 let closeBtn = this.ui.getNode("close"); closeBtn.on(cc.Node.EventType.TOUCH_END, () => { this.closeView(); }, this); let backBtn = this.ui.getNode("btnBack"); backBtn.on(cc.Node.EventType.TOUCH_END, () => { this.closeView(); }, this); for (let i = 1; i < App.DataManager.LevelCount + 1; i++) { this.list.push(i); } let nodeName = ["nodeLevel", "nodeFood", "nodeKitchen"]; let btnName = ["btn_level", "btn_food", "btn_kitchen"]; let imgName = ["img_level", "img_food", "img_kitchen"] for (let i = 0; i < 3; i++) { this.nodeList[i] = this.ui.getNode(nodeName[i]); this.btnList[i] = this.ui.getNode(btnName[i]); this.imgList[i] = this.ui.getNode(imgName[i]); this.btnList[i].on(cc.Node.EventType.TOUCH_END, () => { this.btnClickCall(i); }, this); } this.ui.getNode("labelTili").getComponent(cc.Label).string = TimeControl.instance.currentTili + "/" + TimeControl.instance.tiliMax; this.ui.getNode("labelCoin").getComponent(cc.Label).string = App.DataManager.UserCoin + ""; this.ui.getNode("labelDiamond").getComponent(cc.Label).string = App.DataManager.UserDiamond + ""; this.CreateLevel(); this.scheduleOnce(() => { this.SetCenter(App.DataManager.PlayLevel); }, 0); App.SoundManager.playBGM(SoundManager.hallBgm[1]); } private btnClickCall(index: number){ for (let i = 0; i < this.imgList.length; i++) { this.nodeList[i].active = false; this.imgList[i].active = false; } this.nodeList[index].active = true; this.imgList[index].active = true; } // 显示玩家金币 public ShowUserCoinValue(): void { if(this){ this.ui.getNode("labelCoin").getComponent(cc.Label).string = App.DataManager.UserCoin + ""; } } /** * 生成关卡 */ private CreateLevel(): void { console.log('生成关卡'); this.levelList = this.ui.getNode("levelList"); this.levelList.getComponent(SuperScrollView).setData(this.list, false, null); } /** * 设置关卡居中显示 * @param currentPlayLevel 最后游玩关卡 */ private SetCenter(currentPlayLevel: number) { let maxShowRow = 4; let maxShowColumn = 4; let currentRow = Math.ceil(currentPlayLevel / maxShowColumn); let wholeRow = Math.ceil(this.list.length / maxShowColumn); if (currentRow < maxShowRow) { this.levelList.getComponent(cc.ScrollView).scrollToTop(0.1); console.log("最上方"); } else if (currentRow > wholeRow - maxShowRow) { this.levelList.getComponent(cc.ScrollView).scrollToBottom(0.1); console.log("最下方"); } else { var percent = currentRow / wholeRow; this.levelList.getComponent(cc.ScrollView).scrollToPercentVertical(percent, 0.1, true); } } public static path(): string { return "hallScene/prefabs/ChooseLevelPanel"; } onDestroy(){ this.closeView(); } }