From d51c122d5762d45994fce528f2792c32ec1ff4b1 Mon Sep 17 00:00:00 2001 From: yangwen Date: Sat, 17 May 2025 17:54:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=BE=E5=BA=A6UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/resources/Difficulty.lh | 375 ++++++++++++++++++++++++++++ assets/resources/Difficulty.lh.meta | 3 + assets/resources/Stage.lh | 2 +- src/models/StorageManager.ts | 2 +- src/types/global.ts | 6 +- src/views/Difficulty.ts | 35 +++ src/views/Difficulty.ts.meta | 3 + src/views/Stage.ts | 2 +- 8 files changed, 423 insertions(+), 5 deletions(-) create mode 100644 assets/resources/Difficulty.lh create mode 100644 assets/resources/Difficulty.lh.meta create mode 100644 src/views/Difficulty.ts create mode 100644 src/views/Difficulty.ts.meta diff --git a/assets/resources/Difficulty.lh b/assets/resources/Difficulty.lh new file mode 100644 index 0000000..ce5c20a --- /dev/null +++ b/assets/resources/Difficulty.lh @@ -0,0 +1,375 @@ +{ + "_$ver": 1, + "_$id": "zala0uui", + "_$type": "Box", + "name": "Difficulty", + "width": 1080, + "height": 1920, + "_mouseState": 2, + "left": 0, + "right": 0, + "top": 0, + "bottom": 0, + "_$comp": [ + { + "_$type": "87bad4d3-bede-442e-914d-d7bcdc85f0d1", + "scriptPath": "../src/views/Difficulty.ts", + "obj_items": { + "_$ref": "34t1dkio" + } + } + ], + "_$child": [ + { + "_$id": "jzxgx41i", + "_$type": "Box", + "name": "offset", + "y": 560, + "width": 1080, + "height": 1360, + "_mouseState": 2, + "left": 0, + "right": 0, + "bottom": 0, + "_$child": [ + { + "_$id": "bd1s5tvm", + "_$type": "Sprite", + "name": "bg", + "width": 1080, + "height": 1360, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 20, + "rt": 20, + "lb": 0, + "rb": 0, + "percent": true, + "lineWidth": 1, + "fillColor": "rgba(245, 247, 251, 1)" + } + ] + }, + { + "_$id": "e5l16p86", + "_$type": "Label", + "name": "Label", + "x": 90, + "y": 48, + "width": 900, + "height": 180, + "centerX": 0, + "text": "New Game", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "bold": true, + "align": "center", + "valign": "middle", + "padding": "0,0,0,0", + "_$child": [ + { + "_$id": "5xwrtg57", + "_$type": "Box", + "name": "Box", + "x": 410, + "y": -36, + "width": 80, + "height": 20, + "centerX": 0, + "centerY": -116, + "_$child": [ + { + "_$id": "wk9lt59j", + "_$type": "Sprite", + "name": "Sprite", + "width": 80, + "height": 12, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 6, + "rt": 6, + "lb": 6, + "rb": 6, + "percent": true, + "lineWidth": 1, + "fillColor": "rgba(211, 213, 219, 1)" + } + ] + } + ] + } + ] + }, + { + "_$id": "34t1dkio", + "_$type": "VBox", + "name": "items", + "y": 300, + "width": 1080, + "height": 1128, + "_mouseState": 2, + "bottom": -68, + "centerX": 0, + "space": 50, + "align": "center", + "_$child": [ + { + "_$id": "rxv162yy", + "_$type": "Box", + "name": "Box(1)", + "x": 72, + "width": 936, + "height": 144, + "_$child": [ + { + "_$id": "590euu2q", + "_$type": "Sprite", + "name": "Sprite", + "width": 936, + "height": 144, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 10, + "rt": 10, + "lb": 10, + "rb": 10, + "percent": true, + "lineWidth": 1, + "fillColor": "#FFFFFF" + } + ] + }, + { + "_$id": "36r7vd4n", + "_$type": "Label", + "name": "Label", + "width": 900, + "height": 144, + "centerX": -18, + "centerY": 0, + "text": "Easy", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "align": "center", + "valign": "middle", + "padding": "0,0,0,0" + } + ] + }, + { + "_$id": "0q6t2588", + "_$type": "Box", + "name": "Box(2)", + "x": 72, + "y": 194, + "width": 936, + "height": 144, + "_$child": [ + { + "_$id": "yjk1xq2a", + "_$type": "Sprite", + "name": "Sprite", + "width": 936, + "height": 144, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 10, + "rt": 10, + "lb": 10, + "rb": 10, + "percent": true, + "lineWidth": 1, + "fillColor": "#FFFFFF" + } + ] + }, + { + "_$id": "ctexrl7w", + "_$type": "Label", + "name": "Label", + "width": 900, + "height": 144, + "centerX": -18, + "centerY": 0, + "text": "Medium", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "align": "center", + "valign": "middle", + "padding": "0,0,0,0" + } + ] + }, + { + "_$id": "j3ml4g8s", + "_$type": "Box", + "name": "Box(3)", + "x": 72, + "y": 388, + "width": 936, + "height": 144, + "_$child": [ + { + "_$id": "nfk6pjgd", + "_$type": "Sprite", + "name": "Sprite", + "width": 936, + "height": 144, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 10, + "rt": 10, + "lb": 10, + "rb": 10, + "percent": true, + "lineWidth": 1, + "fillColor": "#FFFFFF" + } + ] + }, + { + "_$id": "yk78vemi", + "_$type": "Label", + "name": "Label", + "width": 900, + "height": 144, + "centerX": -18, + "centerY": 0, + "text": "Hard", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "align": "center", + "valign": "middle", + "padding": "0,0,0,0" + } + ] + }, + { + "_$id": "e4epdrmw", + "_$type": "Box", + "name": "Box(4)", + "x": 72, + "y": 582, + "width": 936, + "height": 144, + "_$child": [ + { + "_$id": "nogfpbyx", + "_$type": "Sprite", + "name": "Sprite", + "width": 936, + "height": 144, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 10, + "rt": 10, + "lb": 10, + "rb": 10, + "percent": true, + "lineWidth": 1, + "fillColor": "#FFFFFF" + } + ] + }, + { + "_$id": "83aiwvdd", + "_$type": "Label", + "name": "Label", + "width": 900, + "height": 144, + "centerX": -18, + "centerY": 0, + "text": "Expert", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "align": "center", + "valign": "middle", + "padding": "0,0,0,0" + } + ] + }, + { + "_$id": "a2kjyumo", + "_$type": "Box", + "name": "Box(5)", + "x": 72, + "y": 776, + "width": 936, + "height": 144, + "_$child": [ + { + "_$id": "2unm1bxx", + "_$type": "Sprite", + "name": "Sprite", + "width": 936, + "height": 144, + "_gcmds": [ + { + "_$type": "DrawRoundRectCmd", + "x": 0, + "y": 0, + "width": 1, + "height": 1, + "lt": 10, + "rt": 10, + "lb": 10, + "rb": 10, + "percent": true, + "lineWidth": 1, + "fillColor": "#FFFFFF" + } + ] + }, + { + "_$id": "p36e2q6t", + "_$type": "Label", + "name": "Label", + "width": 900, + "height": 144, + "centerX": -18, + "centerY": 0, + "text": "Extreme", + "fontSize": 80, + "color": "rgba(45, 49, 56, 1)", + "align": "center", + "valign": "middle", + "padding": "0,0,0,0" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/assets/resources/Difficulty.lh.meta b/assets/resources/Difficulty.lh.meta new file mode 100644 index 0000000..47d2420 --- /dev/null +++ b/assets/resources/Difficulty.lh.meta @@ -0,0 +1,3 @@ +{ + "uuid": "942e288c-58da-4b15-83bf-7541d7ad8294" +} \ No newline at end of file diff --git a/assets/resources/Stage.lh b/assets/resources/Stage.lh index 1bbea5b..53fdc8b 100644 --- a/assets/resources/Stage.lh +++ b/assets/resources/Stage.lh @@ -168,7 +168,7 @@ "height": 60, "centerX": 0, "centerY": -550, - "text": "难度", + "text": "easy", "fontSize": 30, "color": "rgba(123, 129, 140, 1)", "align": "center", diff --git a/src/models/StorageManager.ts b/src/models/StorageManager.ts index d0b75ea..d7207f9 100644 --- a/src/models/StorageManager.ts +++ b/src/models/StorageManager.ts @@ -35,7 +35,7 @@ export class StorageManager { this.stageMap.set(stageID, dataStage) } else { - dataStage = createDataStage(config.DIFFICULTY_TYPE.Easy) + dataStage = createDataStage("first", "", config.DIFFICULTY_TYPE.Easy) this.stageMap.set(stageID, dataStage) } } diff --git a/src/types/global.ts b/src/types/global.ts index 653d349..dded862 100644 --- a/src/types/global.ts +++ b/src/types/global.ts @@ -17,6 +17,8 @@ export interface DataUndo { //关卡数据 export interface DataStage { + id: string, + name: string, difficulty: number, mistake?: number, duration?: number, @@ -26,8 +28,8 @@ export interface DataStage { blocks?: Array, undos?: Array, } -export function createDataStage(difficulty: number): DataStage { - var data: DataStage = {difficulty: difficulty} +export function createDataStage(id: string, name: string, difficulty: number): DataStage { + var data: DataStage = {id: id, name: name, difficulty: difficulty} data.mistake = 0 data.duration = 0 data.note_open = false diff --git a/src/views/Difficulty.ts b/src/views/Difficulty.ts new file mode 100644 index 0000000..e1e841a --- /dev/null +++ b/src/views/Difficulty.ts @@ -0,0 +1,35 @@ +const { regClass, property } = Laya; + +@regClass() +export class Difficulty extends Laya.Script { + declare owner : Laya.Box; + + + @property(Laya.Box) + public obj_items: Laya.Box; + private items: Array = new Array() + + //组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次 + //onAwake(): void {} + + //组件被启用后执行,例如节点被添加到舞台后 + //onEnable(): void {} + + //组件被禁用时执行,例如从节点从舞台移除后 + //onDisable(): void {} + + //第一次执行update之前执行,只会执行一次 + //onStart(): void {} + + //手动调用节点销毁时执行 + //onDestroy(): void {} + + //每帧更新时执行,尽量不要在这里写大循环逻辑或者使用getComponent方法 + //onUpdate(): void {} + + //每帧更新时执行,在update之后执行,尽量不要在这里写大循环逻辑或者使用getComponent方法 + //onLateUpdate(): void {} + + //鼠标点击后执行。与交互相关的还有onMouseDown等十多个函数,具体请参阅文档。 + //onMouseClick(): void {} +} \ No newline at end of file diff --git a/src/views/Difficulty.ts.meta b/src/views/Difficulty.ts.meta new file mode 100644 index 0000000..d9be251 --- /dev/null +++ b/src/views/Difficulty.ts.meta @@ -0,0 +1,3 @@ +{ + "uuid": "87bad4d3-bede-442e-914d-d7bcdc85f0d1" +} \ No newline at end of file diff --git a/src/views/Stage.ts b/src/views/Stage.ts index a3ff185..f27e1d7 100644 --- a/src/views/Stage.ts +++ b/src/views/Stage.ts @@ -4,7 +4,7 @@ import { Block } from "./Block"; import { Candy } from "./Candy"; import { DOStage } from "../models/DOStage"; import { config } from "../constants/config"; -import { DataUndo } from "../types/global"; + const { regClass, property } = Laya;