import game_constants from "./game_constants"; const { ccclass, property } = cc._decorator; @ccclass export default class NewClass extends cc.Component { @property(cc.Label) level_text: cc.Label = null; @property(cc.Label) level_grey: cc.Label = null; @property(cc.Node) lock_node: cc.Node = null; @property(cc.Node) currentLv_node: cc.Node = null; current_level = 0; protected onLoad(): void { // 在节点加载时,为节点添加触摸结束事件监听器 this.addTouchEndEventListener(); } // 为节点添加触摸结束事件监听器的函数 private addTouchEndEventListener(): void { this.node.on(cc.Node.EventType.TOUCH_END, this.onLevelClick, this); } initLevelItem(lv: number, isCurrentLv: boolean, isLock: boolean) { // 设置当前等级值 this.setCurrentLevel(lv); // 更新等级文本显示 this.updateLevelText(lv); // 更新灰色等级文本显示 this.updateLevelGreyText(lv); // 根据是否为当前等级,设置当前等级节点的显示状态 this.setCurrentLvNodeActive(isCurrentLv); // 根据是否锁定,设置锁定节点的显示状态 this.setLockNodeActive(isLock); } // 设置当前等级值的函数 private setCurrentLevel(lv: number): void { this.current_level = lv; } // 更新等级文本显示的函数 private updateLevelText(lv: number): void { this.level_text.string = lv + ""; } // 更新灰色等级文本显示的函数 private updateLevelGreyText(lv: number): void { this.level_grey.string = lv + ""; } // 根据是否为当前等级,设置当前等级节点的显示状态的函数 private setCurrentLvNodeActive(isCurrentLv: boolean): void { if (isCurrentLv) { this.currentLv_node.active = true; } } // 根据是否锁定,设置锁定节点的显示状态的函数 private setLockNodeActive(isLock: boolean): void { this.lock_node.active = isLock; } onLevelClick() { // 检查是否可点击当前等级,并在可点击时发送选择等级点击事件 this.checkAndEmitLevelClickEvent(); } // 检查是否可点击当前等级,并在可点击时发送选择等级点击事件的函数 private checkAndEmitLevelClickEvent(): void { if (this.lock_node.active === false && this.current_level > 0) { cc.systemEvent.emit(game_constants.select_level_clicked, this.current_level); } } // update (dt) {} }