feat:完善 pk 创作关卡

This commit is contained in:
richarjiang
2026-05-08 23:09:17 +08:00
parent 2a620d75d5
commit 7757168402
6 changed files with 1550 additions and 650 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -28,23 +28,23 @@
"__id__": 22
},
{
"__id__": 58
"__id__": 64
},
{
"__id__": 122
"__id__": 128
}
],
"_active": true,
"_components": [
{
"__id__": 136
"__id__": 142
},
{
"__id__": 138
"__id__": 144
}
],
"_prefab": {
"__id__": 140
"__id__": 146
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -548,22 +548,25 @@
},
{
"__id__": 41
},
{
"__id__": 53
}
],
"_active": true,
"_components": [
{
"__id__": 53
"__id__": 59
},
{
"__id__": 55
"__id__": 61
},
{
"__id__": 38
}
],
"_prefab": {
"__id__": 57
"__id__": 63
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1226,6 +1229,142 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "ScrolViewMask",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 22
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 54
},
{
"__id__": 56
}
],
"_prefab": {
"__id__": 58
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -728.827,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 1,
"w": 6.123233995736766e-17
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 180
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 53
},
"_enabled": true,
"__prefab": {
"__id__": 55
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1080,
"height": 60
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "75hT9U0vpP+ovHPRLpBU/f"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 53
},
"_enabled": true,
"__prefab": {
"__id__": 57
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 225,
"g": 245,
"b": 197,
"a": 255
},
"_spriteFrame": {
"__uuid__": "faab3d46-e885-4c46-8f19-9f872e7d6973@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0ftWWFMXBLp7zqfAcryFtX"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "76wU4ROVVC3K9066UvfC0r",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -1236,7 +1375,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 54
"__id__": 60
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1264,7 +1403,7 @@
},
"_enabled": false,
"__prefab": {
"__id__": 56
"__id__": 62
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1321,36 +1460,36 @@
"__id__": 1
},
"_children": [
{
"__id__": 59
},
{
"__id__": 65
},
{
"__id__": 81
"__id__": 71
},
{
"__id__": 97
"__id__": 87
},
{
"__id__": 103
}
],
"_active": true,
"_components": [
{
"__id__": 113
},
{
"__id__": 115
},
{
"__id__": 117
},
{
"__id__": 119
},
{
"__id__": 121
},
{
"__id__": 123
},
{
"__id__": 125
}
],
"_prefab": {
"__id__": 121
"__id__": 127
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1387,20 +1526,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 58
"__id__": 64
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 60
"__id__": 66
},
{
"__id__": 62
"__id__": 68
}
],
"_prefab": {
"__id__": 64
"__id__": 70
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1437,11 +1576,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 59
"__id__": 65
},
"_enabled": true,
"__prefab": {
"__id__": 61
"__id__": 67
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1465,11 +1604,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 59
"__id__": 65
},
"_enabled": true,
"__prefab": {
"__id__": 63
"__id__": 69
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1520,24 +1659,24 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 58
"__id__": 64
},
"_children": [
{
"__id__": 66
"__id__": 72
},
{
"__id__": 72
"__id__": 78
}
],
"_active": true,
"_components": [
{
"__id__": 78
"__id__": 84
}
],
"_prefab": {
"__id__": 80
"__id__": 86
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1574,20 +1713,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 65
"__id__": 71
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 67
"__id__": 73
},
{
"__id__": 69
"__id__": 75
}
],
"_prefab": {
"__id__": 71
"__id__": 77
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1624,11 +1763,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 66
"__id__": 72
},
"_enabled": true,
"__prefab": {
"__id__": 68
"__id__": 74
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1652,11 +1791,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 66
"__id__": 72
},
"_enabled": true,
"__prefab": {
"__id__": 70
"__id__": 76
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1733,20 +1872,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 65
"__id__": 71
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 73
"__id__": 79
},
{
"__id__": 75
"__id__": 81
}
],
"_prefab": {
"__id__": 77
"__id__": 83
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1783,11 +1922,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 72
"__id__": 78
},
"_enabled": true,
"__prefab": {
"__id__": 74
"__id__": 80
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1811,11 +1950,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 72
"__id__": 78
},
"_enabled": true,
"__prefab": {
"__id__": 76
"__id__": 82
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1869,11 +2008,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 65
"__id__": 71
},
"_enabled": true,
"__prefab": {
"__id__": 79
"__id__": 85
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1910,24 +2049,24 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 58
"__id__": 64
},
"_children": [
{
"__id__": 82
"__id__": 88
},
{
"__id__": 88
"__id__": 94
}
],
"_active": true,
"_components": [
{
"__id__": 94
"__id__": 100
}
],
"_prefab": {
"__id__": 96
"__id__": 102
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1964,20 +2103,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 81
"__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 83
"__id__": 89
},
{
"__id__": 85
"__id__": 91
}
],
"_prefab": {
"__id__": 87
"__id__": 93
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2014,11 +2153,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 82
"__id__": 88
},
"_enabled": true,
"__prefab": {
"__id__": 84
"__id__": 90
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2042,11 +2181,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 82
"__id__": 88
},
"_enabled": true,
"__prefab": {
"__id__": 86
"__id__": 92
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2123,20 +2262,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 81
"__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 89
"__id__": 95
},
{
"__id__": 91
"__id__": 97
}
],
"_prefab": {
"__id__": 93
"__id__": 99
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2173,11 +2312,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 88
"__id__": 94
},
"_enabled": true,
"__prefab": {
"__id__": 90
"__id__": 96
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2201,11 +2340,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 88
"__id__": 94
},
"_enabled": true,
"__prefab": {
"__id__": 92
"__id__": 98
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2259,11 +2398,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 81
"__id__": 87
},
"_enabled": true,
"__prefab": {
"__id__": 95
"__id__": 101
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2300,24 +2439,24 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 58
"__id__": 64
},
"_children": [
{
"__id__": 98
"__id__": 104
},
{
"__id__": 104
"__id__": 110
}
],
"_active": true,
"_components": [
{
"__id__": 110
"__id__": 116
}
],
"_prefab": {
"__id__": 112
"__id__": 118
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2354,20 +2493,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 97
"__id__": 103
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 99
"__id__": 105
},
{
"__id__": 101
"__id__": 107
}
],
"_prefab": {
"__id__": 103
"__id__": 109
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2404,11 +2543,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 98
"__id__": 104
},
"_enabled": true,
"__prefab": {
"__id__": 100
"__id__": 106
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2432,11 +2571,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 98
"__id__": 104
},
"_enabled": true,
"__prefab": {
"__id__": 102
"__id__": 108
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2490,20 +2629,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 97
"__id__": 103
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 105
"__id__": 111
},
{
"__id__": 107
"__id__": 113
}
],
"_prefab": {
"__id__": 109
"__id__": 115
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2540,11 +2679,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 104
"__id__": 110
},
"_enabled": true,
"__prefab": {
"__id__": 106
"__id__": 112
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2568,11 +2707,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 104
"__id__": 110
},
"_enabled": true,
"__prefab": {
"__id__": 108
"__id__": 114
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2652,11 +2791,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 97
"__id__": 103
},
"_enabled": true,
"__prefab": {
"__id__": 111
"__id__": 117
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2693,11 +2832,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 58
"__id__": 64
},
"_enabled": true,
"__prefab": {
"__id__": 114
"__id__": 120
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2721,11 +2860,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 58
"__id__": 64
},
"_enabled": true,
"__prefab": {
"__id__": 116
"__id__": 122
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2766,11 +2905,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 58
"__id__": 64
},
"_enabled": true,
"__prefab": {
"__id__": 118
"__id__": 124
},
"clickEvents": [],
"_interactable": true,
@@ -2810,7 +2949,7 @@
"_duration": 0.1,
"_zoomScale": 1.2,
"_target": {
"__id__": 58
"__id__": 64
},
"_id": ""
},
@@ -2824,23 +2963,23 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 58
"__id__": 64
},
"_enabled": true,
"__prefab": {
"__id__": 120
"__id__": 126
},
"levelCover": {
"__id__": 62
"__id__": 68
},
"answerLabel": {
"__id__": 107
"__id__": 113
},
"tips1Label": {
"__id__": 69
"__id__": 75
},
"tips2Label": {
"__id__": 85
"__id__": 91
},
"tips3Label": null,
"_id": ""
@@ -2872,23 +3011,23 @@
},
"_children": [
{
"__id__": 123
"__id__": 129
}
],
"_active": true,
"_components": [
{
"__id__": 129
"__id__": 135
},
{
"__id__": 131
"__id__": 137
},
{
"__id__": 133
"__id__": 139
}
],
"_prefab": {
"__id__": 135
"__id__": 141
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2925,20 +3064,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 122
"__id__": 128
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 124
"__id__": 130
},
{
"__id__": 126
"__id__": 132
}
],
"_prefab": {
"__id__": 128
"__id__": 134
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2975,11 +3114,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 123
"__id__": 129
},
"_enabled": true,
"__prefab": {
"__id__": 125
"__id__": 131
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3003,11 +3142,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 123
"__id__": 129
},
"_enabled": true,
"__prefab": {
"__id__": 127
"__id__": 133
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -3087,11 +3226,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 122
"__id__": 128
},
"_enabled": true,
"__prefab": {
"__id__": 130
"__id__": 136
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3115,11 +3254,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 122
"__id__": 128
},
"_enabled": true,
"__prefab": {
"__id__": 132
"__id__": 138
},
"clickEvents": [],
"_interactable": true,
@@ -3171,11 +3310,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 122
"__id__": 128
},
"_enabled": true,
"__prefab": {
"__id__": 134
"__id__": 140
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -3233,7 +3372,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 137
"__id__": 143
},
"_contentSize": {
"__type__": "cc.Size",
@@ -3261,10 +3400,10 @@
},
"_enabled": true,
"__prefab": {
"__id__": 139
"__id__": 145
},
"backBtn": {
"__id__": 122
"__id__": 128
},
"scrollView": {
"__id__": 22
@@ -3273,10 +3412,10 @@
"__id__": 40
},
"listTemplate": {
"__id__": 58
"__id__": 64
},
"backButton": {
"__id__": 122
"__id__": 128
},
"pkTitle": {
"__id__": 11

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
import { _decorator, Node, Button, Sprite, Label, Toggle, ScrollView, EditBox, instantiate, UITransform, Vec2, EventTouch, EffectAsset } from 'cc';
import { _decorator, Node, Button, Sprite, Label, Toggle, ScrollView, EditBox, instantiate, UITransform, Vec2, EventTouch, EffectAsset, AudioClip, AudioSource } from 'cc';
import { BaseView } from 'db://assets/scripts/core/BaseView';
import { ViewManager } from 'db://assets/scripts/core/ViewManager';
import { CompletedLevelsManager } from 'db://assets/scripts/utils/CompletedLevelsManager';
@@ -69,6 +69,9 @@ export class PageWriteLevels extends BaseView {
@property({ tooltip: '关卡封面圆角半径比例相对于短边0-0.5' })
coverCornerRadius: number = 0.1;
@property({ type: AudioClip, tooltip: '关卡项选中/取消选中音效' })
itemToggleAudio: AudioClip | null = null;
private _selectedIndices: Set<number> = new Set();
private _levels: CompletedLevel[] = [];
private _levelCount: number = 0;
@@ -425,6 +428,8 @@ export class PageWriteLevels extends BaseView {
this._selectedIndices.delete(index);
}
this._playSound(this.itemToggleAudio);
console.log('[PageWriteLevels] item切换选中:', index, selected, '当前已选:', this._selectedIndices.size);
const item = this._itemNodes[index];
@@ -507,6 +512,15 @@ export class PageWriteLevels extends BaseView {
return true;
}
private _playSound(clip: AudioClip | null): void {
if (!clip) {
return;
}
const audioSource = this.node.getComponent(AudioSource) ?? this.node.addComponent(AudioSource);
audioSource?.playOneShot(clip);
}
private _onPreviewClick(): void {
if (!this._validateSelection()) return;
const shareTitle = this.shareTitleEditBox?.getComponent(EditBox)?.string?.trim() || '';

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "798824f1-0e20-48b7-ad8a-fb24d55bf986",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}