123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 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();
- }
- }
|