import { G_ShowScoreTips } from "../views/common/GUITips"; import { DOBlock } from "../models/DOBlock"; import { config } from "../constants/config"; const { regClass, property } = Laya; @regClass() export class Block extends Laya.Script { declare owner : Laya.Sprite; @property(Number) public XIndex: number = 0; @property(Number) public YIndex: number = 0; @property(Number) public XGroup: number = 0; @property(Number) public YGroup: number = 0; private tips_bgs: Array = new Array(); private label_show: Laya.Label; private tips_labels: Array = new Array(); private selected: boolean = false private data: DOBlock public onInit(XIndex: number, YIndex: number, XGroup: number, YGroup: number, label_obj: Laya.Box, handler: any, func: any): void { this.XIndex = XIndex; this.YIndex = YIndex; this.XGroup = XGroup; this.YGroup = YGroup; var VBox = this.owner.getChildByName("VBox") for (var i=0; i { this.owner.graphics.clear() this.owner.graphics.drawRect(0, 0, blockSize, blockSize, completedColor) this.owner.alpha = completedAlpha }), 250) } else { this.owner.alpha = alpha } } public setFadeAnimation(): void { var color = this.label_show.color Laya.timer.once(200, this, ()=>{ this.label_show.color = "#ff0000" Laya.timer.once(100, this, ()=>{ this.label_show.color = color Laya.timer.once(200, this, ()=>{ this.label_show.color = "#ff0000" Laya.timer.once(100, this, ()=>{ this.label_show.color = color }) }) }) }) } public setTipsBgColor(visible: boolean, noteNumber: number=0, color: string="", alpha: number=1): void { var blockSize = 38 if (config.H_SCREEN) blockSize = 30 if (visible) { var obj = this.tips_bgs[noteNumber-1] obj.visible = true obj.graphics.clear() obj.graphics.drawRect(0, 0, blockSize, blockSize, color) obj.alpha = alpha } else { for (var i=0; i 0) G_ShowScoreTips(score.toString(), this.label_show.parent) } else { if (this.data.get_score() != 0) this.data.set_score(0) } this.data.clean_notes() this.updateBlock() return this.data.get_checked() } public addNoteNumber(noteNumber: number): void { this.data.set_show(0) var note_numbers = this.data.get_notes() var find = note_numbers.indexOf(noteNumber) if (find >= 0) { this.data.remove_note(noteNumber) } else { this.data.add_note(noteNumber) } this.updateBlock() } public setNotes(notes: Array): void { this.data.set_show(0) this.data.clean_notes() for (var i=0; i 0) { this.label_show.text = this.data.get_show().toString() } else { this.label_show.text = ""; var note_numbers = this.data.get_notes() for (var i=0; i