12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import { _decorator, Component, instantiate, Label, log, Node, PageView, Prefab } from 'cc';
- import { item_level } from './item_level';
- import { GDM } from '../dtta/JsonMgr';
- import { gamecfg } from '../dtta/interfaceMgr';
- const { ccclass, property } = _decorator;
- @ccclass('page_levelchoose')
- export class page_levelchoose extends Component {
- @property(PageView)
- pageview_chooselevel: PageView = null;
- @property(Label)
- txt_pagenum: Label = null;
- @property(Prefab)
- item_page: Prefab = null;
- @property(Prefab)
- item_level: Prefab = null;
- start() {
- this.txt_pagenum.string = (this.pageview_chooselevel.getCurrentPageIndex() + 1) + "/" + this.pageview_chooselevel.getPages().length;
- this.InitLevel();
- }
- OnClickExit() {
- this.node.destroy()
- }
- OnPageViewValueChanged(event, customEventData) {
- this.txt_pagenum.string = (this.pageview_chooselevel.getCurrentPageIndex() + 1) + "/" + this.pageview_chooselevel.getPages().length;
- }
- InitLevel() {
- let levelInfo: Array<Array<gamecfg>> = []
- let tmparr: Array<gamecfg> = []
- let data = GDM.gamecfgMgr.data
- if (GDM.gamecfgMgr.paixuLevelinfo.length > 0) {
- data = GDM.gamecfgMgr.paixuLevelinfo
- }
- // 正确的分组逻辑:先添加元素,再检查是否满
- for (let index = 0; index < data.length; index++) {
- const element = data[index]
- tmparr.push(element) // 先将元素加入临时数组
- if (tmparr.length === 6) { // 检查是否已满
- levelInfo.push(tmparr)
- tmparr = [] // 重置临时数组
- }
- }
- // 处理最后一批不满6个的元素
- if (tmparr.length > 0) {
- levelInfo.push(tmparr)
- }
- log(levelInfo)
- // 后续的页面生成逻辑保持不变
- for (let index = 0; index < levelInfo.length; index++) {
- const element = levelInfo[index]
- let node: Node = instantiate(this.item_page)
- this.pageview_chooselevel.addPage(node)
- for (let i = 0; i < element.length; i++) {
- const unit = element[i]
- let node_unit: Node = instantiate(this.item_level)
- node_unit.parent = node
- node_unit.getComponent(item_level).Init(unit, index * 6 + i)
- }
- }
- this.OnPageViewValueChanged(null, null)
- this.pageview_chooselevel.setCurrentPageIndex(0)
- }
- OnClickNext(event, customdate) {
- this.pageview_chooselevel.scrollToPage(this.pageview_chooselevel.getCurrentPageIndex() + Number(customdate), 0.5)
- }
- }
|