import { UIManager } from "../models/UIManager"; import { Block } from "../types/Block"; import { Candy } from "../types/Candy"; import { DOStage } from "../types/DOStage"; const { regClass, property } = Laya; @regClass() export class Stage extends Laya.Script { declare owner : Laya.Box; @property(Laya.Button) public btn_back: Laya.Button @property(Laya.Label) public label_score: Laya.Label; @property(Laya.Label) public label_mistake: Laya.Label; private mistake_all = 3 @property(Laya.Label) public label_diff: Laya.Label; @property(Laya.Label) public label_time: Laya.Label; @property(Laya.Box) public obj_blocks: Laya.Box; @property(Laya.Box) public obj_block_labels: Laya.Box; private blocks: Array = new Array(); @property(Laya.Box) public obj_candys: Laya.Box; @property(Laya.Box) public obj_candy_labels: Laya.Box; private candys: Array = new Array(); @property(Laya.Box) public btn_undo: Laya.Box; @property(Laya.Box) public btn_erase: Laya.Box; @property(Laya.Box) public btn_note: Laya.Box; private btn_note_normal: Laya.Box private btn_note_checked: Laya.Box @property(Laya.Box) public btn_hint: Laya.Box; private selectedBlock: Block; private data: DOStage; @property(Laya.Box) public obj_block_colors: Laya.Box; @property(Laya.Image) public img_block_normal: Laya.Image; @property(Laya.Image) public img_block_grey: Laya.Image; @property(Laya.Image) public img_block_correct: Laya.Image; @property(Laya.Image) public img_block_weak_correct: Laya.Image; @property(Laya.Image) public img_block_wrong: Laya.Image; @property(Laya.Image) public img_block_weak_wrong: Laya.Image; //组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次 onAwake(): void { this.btn_back.on(Laya.Event.CLICK, this, ()=>{ UIManager.getInstance().loadHome(); this.owner.destroy() }) for (var i=0; i{ var now = Date.now() this.data.set_duration(this.data.get_duration() + Math.floor((now-begin)/1000)) begin = now var last = this.data.get_duration() var hour = Math.floor(last/3600) last = last - hour * 3600 var minite = Math.floor(last/60) last = last - minite * 60 var second = Math.floor(last) this.label_time.text = `${hour>=10?hour:("0"+hour)}:${minite>=10?minite:("0"+minite)}:${second>10?second:("0"+second)}` }) var blocks = doStage.get_blocks() for (var i=0; i = new Array() for (var i=0; i 0) { var random = Math.random() var index = Math.round(random*list.length) if (index >= list.length) index = list.length -1 var block = list[index] block.setShowNumber(block.getData().get_correct()) this.onUpdateScore() this.onSetBlock(block) this.selectedBlock = block } } public onApplyCandy(candy: Candy): void { if (this.selectedBlock && this.selectedBlock.getData().get_checked() == false) { var showNumber = candy.getData().get_show() if (this.data.get_note_open()) { var relateds = this.findRelatedBlocks(this.selectedBlock) var find = false for (var i=0; i= this.mistake_all) { //关卡失败 } } } } } public onClickCandy(evt: Laya.Event): void { var candy = evt.target.getComponent(Candy); this.onApplyCandy(candy) } onKeyUp(evt: Laya.Event): void { var n = Number(evt.key) if (n && n > 0) { var candy = this.candys[n-1] this.onApplyCandy(candy) } } findRelatedBlocks(obj: Block): Array { var list: Array = new Array() for (var i=0; i { var list: Array = new Array() for (var i=0; i