引导系统基本完成,开始制作 引导步骤

This commit is contained in:
2025-08-24 23:40:37 +08:00
parent d693499397
commit 6a29821a7b
46 changed files with 11593 additions and 8594 deletions

View File

@@ -18,22 +18,19 @@
"__id__": 1
},
{
"__id__": 11
},
{
"__id__": 23
"__id__": 13
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 34
"__id__": 24
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.VectorTrack",
"__type__": "cc.animation.ColorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
@@ -42,9 +39,6 @@
"proxy": null
},
"_channels": [
{
"__id__": 3
},
{
"__id__": 5
},
@@ -53,223 +47,20 @@
},
{
"__id__": 9
},
{
"__id__": 11
}
],
"_nComponents": 3
]
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
"position"
]
{
"__id__": 3
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 4
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
1.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
1.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 400,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 400,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 700,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 8
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
1.25
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 0,
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 10
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.ColorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 12
},
"proxy": null
},
"_channels": [
{
"__id__": 15
},
{
"__id__": 17
},
{
"__id__": 19
},
{
"__id__": 21
}
]
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 13
},
{
"__id__": 14
},
"color"
]
@@ -285,14 +76,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 16
"__id__": 6
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -306,7 +97,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -318,7 +111,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -330,7 +125,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -339,14 +136,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 18
"__id__": 8
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -360,7 +157,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -372,7 +171,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -384,7 +185,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -393,14 +196,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 20
"__id__": 10
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -414,7 +217,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -426,7 +231,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -438,7 +245,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -447,14 +256,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 22
"__id__": 12
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -468,7 +277,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -480,7 +291,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -492,7 +305,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -503,22 +318,22 @@
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 24
"__id__": 14
},
"proxy": null
},
"_channels": [
{
"__id__": 26
"__id__": 16
},
{
"__id__": 28
"__id__": 18
},
{
"__id__": 30
"__id__": 20
},
{
"__id__": 32
"__id__": 22
}
]
},
@@ -526,7 +341,7 @@
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 25
"__id__": 15
},
"color"
]
@@ -538,14 +353,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 27
"__id__": 17
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -559,7 +374,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -571,7 +388,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -583,7 +402,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -592,14 +413,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 29
"__id__": 19
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -613,7 +434,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -625,7 +448,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -637,7 +462,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -646,14 +473,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 31
"__id__": 21
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -667,7 +494,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -679,7 +508,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -691,7 +522,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,
@@ -700,14 +533,14 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 33
"__id__": 23
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.8333333134651184,
0.8333333333333334,
1.25
],
"_values": [
@@ -721,7 +554,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -733,7 +568,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -745,7 +582,9 @@
"leftTangent": 0,
"leftTangentWeight": 0,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
}
],
"preExtrapolation": 1,

File diff suppressed because it is too large Load Diff

View File

@@ -80,22 +80,19 @@
},
{
"__id__": 263
},
{
"__id__": 283
}
],
"_active": true,
"_components": [
{
"__id__": 291
"__id__": 283
},
{
"__id__": 293
"__id__": 285
}
],
"_prefab": {
"__id__": 295
"__id__": 287
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -6397,118 +6394,6 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 284
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 283
},
"asset": {
"__uuid__": "1c7a67cd-0d50-4b26-ae0f-8bbe3ec1a3a3",
"__expectedType__": "cc.Prefab"
},
"fileId": "4fJlP7AItEGL6+yc5TgOyj",
"instance": {
"__id__": 285
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "3dFm5jvgxJHoZPSPcjeuZk",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 286
},
{
"__id__": 288
},
{
"__id__": 289
},
{
"__id__": 290
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 287
},
"propertyPath": [
"_name"
],
"value": "task"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"4fJlP7AItEGL6+yc5TgOyj"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 287
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 42.185,
"y": -43.337,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 287
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 287
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -6519,7 +6404,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 292
"__id__": 284
},
"_contentSize": {
"__type__": "cc.Size",
@@ -6547,7 +6432,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 294
"__id__": 286
},
"_id": ""
},
@@ -6565,11 +6450,6 @@
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 283
}
]
"targetOverrides": null
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "logorun",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 8,
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 0.625,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 6
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channel": {
"__id__": 4
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.125,
0.25,
0.375,
0.5
],
"_values": [
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@dd586",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@02ab3",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@9a4bc",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@99911",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@1ccf1",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "8958dab6-5c49-40cb-89ec-8a80e647e727",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "logorun"
}
}

View File

@@ -22,7 +22,7 @@
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 11
"__id__": 12
},
"_auxiliaryCurveEntries": []
},
@@ -37,16 +37,16 @@
},
"_channels": [
{
"__id__": 3
"__id__": 4
},
{
"__id__": 5
"__id__": 6
},
{
"__id__": 7
"__id__": 8
},
{
"__id__": 9
"__id__": 10
}
],
"_nComponents": 3
@@ -54,13 +54,20 @@
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"position"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Node"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 4
"__id__": 5
}
},
{
@@ -81,7 +88,9 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -93,9 +102,7 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
@@ -107,9 +114,7 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
"__editorExtras__": null
}
],
"preExtrapolation": 1,
@@ -118,7 +123,7 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 6
"__id__": 7
}
},
{
@@ -139,7 +144,9 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -151,9 +158,7 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
@@ -165,9 +170,7 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
"__editorExtras__": null
}
],
"preExtrapolation": 1,
@@ -176,7 +179,7 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 8
"__id__": 9
}
},
{
@@ -196,7 +199,9 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
"__editorExtras__": {
"broken": null
}
},
{
"__type__": "cc.RealKeyframeValue",
@@ -208,9 +213,7 @@
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
"__editorExtras__": null
}
],
"preExtrapolation": 1,
@@ -219,7 +222,7 @@
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 10
"__id__": 11
}
},
{

View File

@@ -0,0 +1,98 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "tip",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 4,
"speed": 1,
"wrapMode": 2,
"enableTrsBlending": false,
"_duration": 1.25,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": [],
"_additiveSettings": {
"__id__": 6
},
"_auxiliaryCurveEntries": []
},
{
"__type__": "cc.animation.ObjectTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channel": {
"__id__": 4
}
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"spriteFrame"
]
},
{
"__type__": "cc.animation.ComponentPath",
"component": "cc.Sprite"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.ObjectCurve",
"_times": [
0,
0.25,
0.5,
0.75,
1
],
"_values": [
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@a173d",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@d4730",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@28e77",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@a5804",
"__expectedType__": "cc.SpriteFrame"
},
{
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@0c3ca",
"__expectedType__": "cc.SpriteFrame"
}
]
},
{
"__type__": "cc.AnimationClipAdditiveSettings",
"enabled": false,
"refClip": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "83d8ae69-fe53-4647-8fdc-e64122f41a38",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "tip"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "cc84df64-15dc-43d1-8a45-6547bb9dc836",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "guide"
}
}

View File

@@ -8,6 +8,6 @@
],
"subMetas": {},
"userData": {
"syncNodeName": "task"
"syncNodeName": "guide_hand"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "9e230ba1-8f43-4370-989d-ca35558ebdd3",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "guide_step"
}
}

View File

@@ -1,270 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "task",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "task",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 274.234,
"y": 484.746,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "Tutorial_Hand",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 5
},
{
"__id__": 7
}
],
"_prefab": {
"__id__": 9
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 4
},
"_contentSize": {
"__type__": "cc.Size",
"width": 82,
"height": 90
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c1KB9dIDFAxbmLQg99swxi"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "49c583b3-d566-4c79-9e4c-bd0ca4a4b717@f17b2",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "75BNcZLuNN16FmtGUp8YIl"
},
{
"__type__": "cc.Animation",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 8
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "cc054dac-20b0-428b-bbb1-02776f6774ee",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "cc054dac-20b0-428b-bbb1-02776f6774ee",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f82R0f+7pPqrE0vPPEKFOZ"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "0658nQXq9N0oQ+gWV86dic",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_contentSize": {
"__type__": "cc.Size",
"width": 180,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2dOsoG349BmaSplRClOk+M"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "4fJlP7AItEGL6+yc5TgOyj",
"targetOverrides": null
}
]

View File

@@ -0,0 +1,934 @@
[
{
"__type__": "cc.Prefab",
"_name": "tip",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "tip",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 30
}
],
"_active": true,
"_components": [
{
"__id__": 38
},
{
"__id__": 40
}
],
"_prefab": {
"__id__": 42
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -360,
"y": 700,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "bg",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 23
},
{
"__id__": 25
},
{
"__id__": 27
}
],
"_prefab": {
"__id__": 29
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 360,
"y": 100,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "Mask",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 2
},
"_children": [
{
"__id__": 4
}
],
"_active": true,
"_components": [
{
"__id__": 14
},
{
"__id__": 16
},
{
"__id__": 18
},
{
"__id__": 20
}
],
"_prefab": {
"__id__": 22
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 13.5,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "magic_fire_OTHER2_0_Buff_0-0",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 3
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 5
},
{
"__id__": 7
},
{
"__id__": 9
},
{
"__id__": 11
}
],
"_prefab": {
"__id__": 13
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -212.573,
"y": -51.67400000000001,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": -1.3,
"y": 1.3,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 6
},
"_contentSize": {
"__type__": "cc.Size",
"width": 256,
"height": 256
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "842RGVuh9Jd4bcpFWdKOZY"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 8
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "940c5506-25f7-4fa7-9bab-b426b471f9a1@a173d",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
"_sizeMode": 1,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d2y4RhtypFgqSx4PHqebcm"
},
{
"__type__": "cc.Animation",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 10
},
"playOnLoad": true,
"_clips": [
{
"__uuid__": "83d8ae69-fe53-4647-8fdc-e64122f41a38",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": {
"__uuid__": "83d8ae69-fe53-4647-8fdc-e64122f41a38",
"__expectedType__": "cc.AnimationClip"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6dEdPju+5Eg5DE+mvuBFSD"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 4
},
"_enabled": true,
"__prefab": {
"__id__": 12
},
"_alignFlags": 4,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 6.405000000000001,
"_bottom": -111.57400000000001,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 256,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "12BaDPQstFjpzxVIEQ4hQd"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "8f5EdzC05FhrFO3eJrVhes",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 15
},
"_contentSize": {
"__type__": "cc.Size",
"width": 680,
"height": 213
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "098IVImrhLbJMQEXLcx1KO"
},
{
"__type__": "cc.Mask",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 17
},
"_type": 0,
"_inverted": false,
"_segments": 64,
"_alphaThreshold": 0.1,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f6PGkCrzFGs6E8LHgXa1PM"
},
{
"__type__": "cc.Graphics",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 19
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_lineWidth": 1,
"_strokeColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_lineJoin": 2,
"_lineCap": 0,
"_fillColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 0
},
"_miterLimit": 10,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "6crmjsNctBM6hchytwJ5YX"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 21
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": -20,
"_bottom": 7,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 100,
"_originalHeight": 100,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "8cOwxRlq1M9oiy0lwB8VFU"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "928z5cPYBKGr3r9XpbEHTM",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 24
},
"_contentSize": {
"__type__": "cc.Size",
"width": 680,
"height": 200
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a1Tj8D5gNHgJVjUfhdPrlk"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "6cd18ad7-7b15-43fc-b1bc-33a3973a6564@b85e5",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 1,
"_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": "66m1QqP4dPyKY4bxErbD1b"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 28
},
"_alignFlags": 45,
"_target": null,
"_left": 20,
"_right": 20,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 92,
"_originalHeight": 120,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d1DIMrgKZC4b65vPO1njY6"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "67kg5YwcZBaIjN5qk6hfes",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "tip_label",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 31
},
{
"__id__": 33
},
{
"__id__": 35
}
],
"_prefab": {
"__id__": 37
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 460,
"y": 100,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 32
},
"_contentSize": {
"__type__": "cc.Size",
"width": 420,
"height": 54.4
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1aSIaqAV1MEp8ApxTDY/eA"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 34
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_string": "信息",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 40,
"_fontSize": 40,
"_fontFamily": "Arial",
"_lineHeight": 40,
"_overflow": 3,
"_enableWrapText": true,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 1,
"_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_outlineWidth": 2,
"_enableShadow": false,
"_shadowColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_shadowOffset": {
"__type__": "cc.Vec2",
"x": 2,
"y": 2
},
"_shadowBlur": 2,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "bfG4t/2QdEK7+2XVJTDwYr"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 36
},
"_alignFlags": 18,
"_target": null,
"_left": 250,
"_right": 70,
"_top": 106.3,
"_bottom": 39.3,
"_horizontalCenter": 100,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 400,
"_originalHeight": 54.4,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "73m5GoISlKD5yVNtnnfbIp"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "79YIQDtXNBi4+Fe9c3EQNE",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 39
},
"_contentSize": {
"__type__": "cc.Size",
"width": 720,
"height": 200
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "ccHQEtJuZAcaCckGq+JhVV"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 41
},
"_alignFlags": 40,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 380,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 100,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "504Z4v5h5KYJa+ZDZKTfRk"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "20nBFDj4RJF52sWGsX/uRA",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -2,12 +2,12 @@
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "915a4408-90ea-4c30-9974-05d96c0c27f1",
"uuid": "427187e5-0310-47d0-a5a1-a71397f17545",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "btn1"
"syncNodeName": "tip"
}
}

View File

@@ -25,29 +25,26 @@
"__id__": 27
},
{
"__id__": 95
"__id__": 71
},
{
"__id__": 111
},
{
"__id__": 130
"__id__": 87
}
],
"_active": true,
"_components": [
{
"__id__": 138
"__id__": 106
},
{
"__id__": 140
"__id__": 108
},
{
"__id__": 142
"__id__": 110
}
],
"_prefab": {
"__id__": 144
"__id__": 112
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -405,20 +402,20 @@
"_active": true,
"_components": [
{
"__id__": 88
"__id__": 64
},
{
"__id__": 90
"__id__": 66
},
{
"__id__": 43
},
{
"__id__": 92
"__id__": 68
}
],
"_prefab": {
"__id__": 94
"__id__": 70
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -478,7 +475,7 @@
}
],
"_prefab": {
"__id__": 87
"__id__": 63
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -820,31 +817,21 @@
"_parent": {
"__id__": 46
},
"_children": [
"_children": [],
"_active": true,
"_components": [
{
"__id__": 56
},
{
"__id__": 64
"__id__": 58
},
{
"__id__": 72
}
],
"_active": true,
"_components": [
{
"__id__": 80
},
{
"__id__": 82
},
{
"__id__": 84
"__id__": 60
}
],
"_prefab": {
"__id__": 86
"__id__": 62
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1080,342 +1067,6 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 45
},
"_prefab": {
"__id__": 57
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 56
},
"asset": {
"__uuid__": "443470ad-dfbf-41b6-b474-a004470401de",
"__expectedType__": "cc.Prefab"
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": {
"__id__": 58
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "d4YMNvu1dJ35BK4ZfHBlz5",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 59
},
{
"__id__": 61
},
{
"__id__": 62
},
{
"__id__": 63
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 60
},
"propertyPath": [
"_name"
],
"value": "hcard"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"c46/YsCPVOJYA4mWEpNYRx"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 60
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 120,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 60
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 60
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 45
},
"_prefab": {
"__id__": 65
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 64
},
"asset": {
"__uuid__": "443470ad-dfbf-41b6-b474-a004470401de",
"__expectedType__": "cc.Prefab"
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": {
"__id__": 66
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "4eZQ1UZSlElIAK3yJH6dDs",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 67
},
{
"__id__": 69
},
{
"__id__": 70
},
{
"__id__": 71
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 68
},
"propertyPath": [
"_name"
],
"value": "hcard"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"c46/YsCPVOJYA4mWEpNYRx"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 68
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 350,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 68
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 68
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 45
},
"_prefab": {
"__id__": 73
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 72
},
"asset": {
"__uuid__": "443470ad-dfbf-41b6-b474-a004470401de",
"__expectedType__": "cc.Prefab"
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": {
"__id__": 74
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "37v6Hc2WZFBLvYqawRVPLV",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 75
},
{
"__id__": 77
},
{
"__id__": 78
},
{
"__id__": 79
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 76
},
"propertyPath": [
"_name"
],
"value": "hcard"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"c46/YsCPVOJYA4mWEpNYRx"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 76
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 580,
"y": 0,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 76
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 76
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -1426,7 +1077,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 81
"__id__": 57
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1454,7 +1105,7 @@
},
"_enabled": false,
"__prefab": {
"__id__": 83
"__id__": 59
},
"_alignFlags": 9,
"_target": null,
@@ -1490,7 +1141,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 85
"__id__": 61
},
"_resizeMode": 0,
"_layoutType": 1,
@@ -1554,7 +1205,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 89
"__id__": 65
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1582,7 +1233,7 @@
},
"_enabled": false,
"__prefab": {
"__id__": 91
"__id__": 67
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1627,7 +1278,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 93
"__id__": 69
},
"_alignFlags": 45,
"_target": null,
@@ -1676,23 +1327,23 @@
},
"_children": [
{
"__id__": 96
"__id__": 72
}
],
"_active": true,
"_components": [
{
"__id__": 104
"__id__": 80
},
{
"__id__": 106
"__id__": 82
},
{
"__id__": 108
"__id__": 84
}
],
"_prefab": {
"__id__": 110
"__id__": 86
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1729,23 +1380,23 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 95
"__id__": 71
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 97
"__id__": 73
},
{
"__id__": 99
"__id__": 75
},
{
"__id__": 101
"__id__": 77
}
],
"_prefab": {
"__id__": 103
"__id__": 79
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1782,11 +1433,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 96
"__id__": 72
},
"_enabled": true,
"__prefab": {
"__id__": 98
"__id__": 74
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1810,11 +1461,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 96
"__id__": 72
},
"_enabled": true,
"__prefab": {
"__id__": 100
"__id__": 76
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1878,11 +1529,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 96
"__id__": 72
},
"_enabled": true,
"__prefab": {
"__id__": 102
"__id__": 78
},
"_alignFlags": 4,
"_target": null,
@@ -1927,11 +1578,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 95
"__id__": 71
},
"_enabled": true,
"__prefab": {
"__id__": 105
"__id__": 81
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1955,11 +1606,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 95
"__id__": 71
},
"_enabled": true,
"__prefab": {
"__id__": 107
"__id__": 83
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2000,11 +1651,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 95
"__id__": 71
},
"_enabled": true,
"__prefab": {
"__id__": 109
"__id__": 85
},
"_alignFlags": 41,
"_target": null,
@@ -2053,23 +1704,23 @@
},
"_children": [
{
"__id__": 112
"__id__": 88
},
{
"__id__": 118
"__id__": 94
}
],
"_active": true,
"_components": [
{
"__id__": 124
"__id__": 100
},
{
"__id__": 126
"__id__": 102
}
],
"_prefab": {
"__id__": 129
"__id__": 105
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2106,20 +1757,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 111
"__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 113
"__id__": 89
},
{
"__id__": 115
"__id__": 91
}
],
"_prefab": {
"__id__": 117
"__id__": 93
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2156,11 +1807,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 112
"__id__": 88
},
"_enabled": true,
"__prefab": {
"__id__": 114
"__id__": 90
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2184,11 +1835,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 112
"__id__": 88
},
"_enabled": true,
"__prefab": {
"__id__": 116
"__id__": 92
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2242,20 +1893,20 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 111
"__id__": 87
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 119
"__id__": 95
},
{
"__id__": 121
"__id__": 97
}
],
"_prefab": {
"__id__": 123
"__id__": 99
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -2292,11 +1943,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 118
"__id__": 94
},
"_enabled": true,
"__prefab": {
"__id__": 120
"__id__": 96
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2320,11 +1971,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 118
"__id__": 94
},
"_enabled": true,
"__prefab": {
"__id__": 122
"__id__": 98
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -2378,11 +2029,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 111
"__id__": 87
},
"_enabled": true,
"__prefab": {
"__id__": 125
"__id__": 101
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2406,15 +2057,15 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 111
"__id__": 87
},
"_enabled": true,
"__prefab": {
"__id__": 127
"__id__": 103
},
"clickEvents": [
{
"__id__": 128
"__id__": 104
}
],
"_interactable": true,
@@ -2483,118 +2134,6 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 131
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 130
},
"asset": {
"__uuid__": "1c7a67cd-0d50-4b26-ae0f-8bbe3ec1a3a3",
"__expectedType__": "cc.Prefab"
},
"fileId": "4fJlP7AItEGL6+yc5TgOyj",
"instance": {
"__id__": 132
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "1cCqYGXSJISpmbEZ9gKXTs",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [],
"propertyOverrides": [
{
"__id__": 133
},
{
"__id__": 135
},
{
"__id__": 136
},
{
"__id__": 137
}
],
"removedComponents": []
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 134
},
"propertyPath": [
"_name"
],
"value": "task"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"4fJlP7AItEGL6+yc5TgOyj"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 134
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 153.535,
"y": -36.987,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 134
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 134
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
@@ -2605,7 +2144,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 139
"__id__": 107
},
"_contentSize": {
"__type__": "cc.Size",
@@ -2633,7 +2172,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 141
"__id__": 109
},
"_alignFlags": 42,
"_target": null,
@@ -2669,7 +2208,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 143
"__id__": 111
},
"_id": ""
},
@@ -2689,18 +2228,6 @@
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 130
},
{
"__id__": 72
},
{
"__id__": 64
},
{
"__id__": 56
},
{
"__id__": 2
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 KiB

After

Width:  |  Height:  |  Size: 580 KiB

View File

@@ -2141,10 +2141,10 @@
"height": 94,
"rawWidth": 92,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"borderTop": 21,
"borderBottom": 69,
"borderLeft": 51,
"borderRight": 35,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,

File diff suppressed because it is too large Load Diff

View File

@@ -24,10 +24,6 @@ export class Main extends Root {
// EPhysics2DDrawFlags.Joint |
// EPhysics2DDrawFlags.Shape;
}
private isWxClient(): boolean {
// 检查是否存在微信API
return typeof wx !== 'undefined' && typeof (wx as any).getSystemInfoSync === 'function';
}
protected async run() {
smc.initialize = ecs.getEntity<Initialize>(Initialize);
smc.vmAdd()

View File

@@ -31,6 +31,8 @@ export class SingletonModuleComp extends ecs.Comp {
in_select:false,
in_fight:false,
};
guides:any=[0,0,0,0,0]
current_guide:number=0
data:any={
score:0,
mission:1,
@@ -94,11 +96,17 @@ export class SingletonModuleComp extends ecs.Comp {
*/
private isWxClient(): boolean {
// 检查是否存在微信API
return typeof wx !== 'undefined' && typeof (wx as any).getSystemInfoSync === 'function';
}
finishGuide(index:number){
smc.guides[index]=1
this.syncGuide()
}
syncGuide(){
//存储到远程服务器 后续再添加
}
//调试用
syncDataFromLocal(){
if(this.isWxClient()) return

View File

@@ -14,6 +14,9 @@ export enum GameEvent {
LoginSuccess = "LoginSuccess",
MAP_MOVE_END_LEFT = "MAP_MOVE_END_LEFT",
MAP_MOVE_END_RIGHT = "MAP_MOVE_END_RIGHT",
GuideStart = "GuideStart",
GuideEnd = "GuideEnd",
GuideComplete = "GuideComplete",
UpdateHero = "UpdateHero",
UpdateFightHero = "UpdateFightHero",
CastSkill = "CastSkill",
@@ -52,8 +55,11 @@ export enum GameEvent {
AD_BACK_FALSE = "AD_BACK_FALSE",
DO_AD_BACK = "DO_AD_BACK",
ShopOpen = "ShopOpen",
HerosOpen = "HerosOpen",
RestOpen = "RestOpen",
HeroInfoOpen = "HeroInfoOpen",
HeroLvUp = "HeroLvUp",
HeroUnlock = "HeroUnlock",
MonDead = "MonDead",
HeroDead = "HeroDead",
GOLD_UPDATE = "GOLD_UPDATE",

View File

@@ -20,6 +20,7 @@ export enum UIID {
Victory,
HeroSelect,
ItemInfo,
Guide=1001,
// Shop_Page,
// Hero_Page,
}
@@ -34,6 +35,7 @@ export var UIConfigData: { [key: number]: UIConfig } = {
[UIID.Victory]: { layer: LayerType.UI, prefab: "gui/element/victory" },
[UIID.HeroSelect]: { layer: LayerType.UI, prefab: "gui/hero_select" },
[UIID.ItemInfo]: { layer: LayerType.UI, prefab: "gui/element/item_info" },
[UIID.Guide]: { layer: LayerType.UI, prefab: "gui/element/guide_step" },
// [UIID.Shop_Page]: { layer: LayerType.UI, prefab: "gui/shop_page" },
// [UIID.Hero_Page]: { layer: LayerType.UI, prefab: "gui/heros_page" },
// [UIID.Toast]: { layer: LayerType.PopUp, prefab: "common/prefab/toast" },

View File

@@ -0,0 +1,247 @@
import { oops } from "db://oops-framework/core/Oops";
import { smc } from "../SingletonModuleComp";
import { GameEvent } from "./GameEvent";
import { UIID } from "./GameUIConfig";
/** 引导步骤类型枚举 */
export enum GuideStepType {
/** 点击操作 */
CLICK = "click",
/** 拖拽操作 */
DRAG = "drag",
/** 显示提示 */
TIP = "tip",
/** 等待操作 */
WAIT = "wait",
}
export const finishCurrGuide=(key:number)=>{
if(smc.guides[key]==0){
oops.message.dispatchEvent(GameEvent.GuideEnd,key)
}
}
export const startGuide=(key:number)=>{
if(smc.guides[key-1]==1&&smc.guides[key]==0){
oops.message.dispatchEvent(GameEvent.GuideStart,key)
}
}
/** 引导步骤配置接口 */
export interface IGuideStep {
/** 步骤ID */
id: string;
/** 步骤类型 */
type: GuideStepType;
/** 目标节点路径(用于查找目标节点) */
key: number;
targetPath?: string;
/** 提示文本 */
tipText?: string;
/** 提示文本偏移 */
tipOffset?: { x: number, y: number };
/** 手指动画位置偏移 */
handOffset?: { x: number, y: number };
/** 下一步骤ID */
nextStep?: string;
/** 是否可跳过 */
skippable?: boolean;
/** 触发条件 */
condition?: () => boolean;
/** 对应的UI界面ID */
uiId?: UIID;
/** 等待时间 */
waitTime?: number;
/** 结束事件 */
end_event?: string;
/** 是否禁用输入 */
noInput?: boolean;
}
/** 引导配置数据 */
export const GuideConfig: { [key: number]: IGuideStep } = {
0: {
id: "welcome", type: GuideStepType.WAIT,key:0,
targetPath: "root/gui/LayerUI/role_controller/mission_home/start/name",
tipText: "欢迎来到游戏",
handOffset: { x: 42, y: -45 }, tipOffset: { x: 0, y: 200 },
nextStep: "start_battle", end_event: "click", noInput: true,
},
1: {
id: "start_battle", type: GuideStepType.CLICK,key:1,
targetPath: "root/gui/LayerUI/role_controller/mission_home/start/name",
tipText: "让我们抵御兽人的入侵吧!",
handOffset: { x: 42, y: -45 }, tipOffset: { x: 0, y: 200 },
// 42 45是手指的偏移量 0 0是提示的偏移量
},
2: {
id: "hero_page", type: GuideStepType.CLICK,key:2,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/hero_page",
tipText: "去招募更多英雄增强队伍吧",
handOffset: { x: 42, y: -45 }, // 向上偏移50像素避免遮挡
},
3: {
id: "hero_info", type: GuideStepType.CLICK,key:3,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/role_controller/mission_home/hero_page",
tipText: "选择可以解锁的英雄吧",
handOffset: { x: 42, y: -45 }, // 向上偏移50像素避免遮挡
},
4: {
id: "re_battle", type: GuideStepType.CLICK,key:4,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/hero_select/main/view/heros/hero2",
tipText: "点击这里选择你的第一个英雄!",
handOffset: { x: 42, y: -45 }, // 向上偏移50像素避免遮挡
},
5: {
id: "up_lv_hero", type: GuideStepType.CLICK,key:5,
// 使用相对路径,从场景根节点开始查找
targetPath: "root/gui/LayerUI/hero_select/main/view/heros/hero2",
tipText: "点击这里选择你的第一个英雄!",
handOffset: { x: 42, y: -45 }, // 向上偏移50像素避免遮挡
},
};
/** 引导配置数组(用于兼容性) */
export const GuideConfigArray: IGuideStep[] = Object.values(GuideConfig);
/** 结束事件到引导索引的映射 */
export const EndEventToKey: { [key: string]: number[] } = {
[GameEvent.UpdateFightHero]: [4],
[GameEvent.MonDead]: [1],
[GameEvent.HeroLvUp]: [5],
// 示例:一个事件对应多个引导步骤
// [GameEvent.BattleStart]: [2, 3, 4], // 战斗开始时触发多个引导
// [GameEvent.LevelUp]: [5, 6, 7], // 升级时触发多个引导
// [GameEvent.HeroUnlock]: [8, 9], // 解锁英雄时触发多个引导
// [GameEvent.MissionComplete]: [10, 11, 12], // 任务完成时触发多个引导
}
/** 通过 end_event 查找引导索引数组 */
export function findGuidesByEndEvent(event: string): number[] {
return EndEventToKey[event] || [];
}
/** 通过 end_event 查找引导索引(保持向后兼容) */
export function findGuideByEndEvent(event: string): number | undefined {
const guides = EndEventToKey[event];
return guides && guides.length > 0 ? guides[0] : undefined;
}
/** 通过引导ID查找引导索引 */
export function findGuideIndexById(guideId: string): number {
for (const [key, guide] of Object.entries(GuideConfig)) {
if (guide.id === guideId) {
return parseInt(key);
}
}
return -1;
}
/** 通过引导ID查找引导配置 */
export function findGuideById(guideId: string): IGuideStep | undefined {
for (const guide of Object.values(GuideConfig)) {
if (guide.id === guideId) {
return guide;
}
}
return undefined;
}
/** 通过数字ID查找引导配置 */
export function findGuideByNumberId(numberId: number): IGuideStep | undefined {
return GuideConfig[numberId];
}
/** 获取所有引导ID列表 */
export function getAllGuideIds(): number[] {
return Object.keys(GuideConfig).map(key => parseInt(key));
}
/** 获取引导配置总数 */
export function getGuideConfigCount(): number {
return Object.keys(GuideConfig).length;
}
/**
* 使用示例如何使用新的数字ID配置格式
*
* 1. 配置格式:
* export const GuideConfig: { [key: number]: IGuideStep } = {
* 0: { id: "welcome", ... },
* 1: { id: "start_battle", ... },
* 2: { id: "hero_page", ... },
* }
*
* 2. 通过数字ID查找引导
* const guide = findGuideByNumberId(0); // 直接通过数字ID查找
*
* 3. 通过字符串ID查找引导
* const guide = findGuideById("welcome"); // 通过字符串ID查找
*
* 4. 获取引导的数字索引:
* const index = findGuideIndexById("welcome"); // 返回 0
*
* 5. 事件映射配置:
* export const EndEventToKey: { [key: string]: number[] } = {
* [GameEvent.BattleStart]: [2, 3, 4], // 一个事件对应多个引导
* }
*
* 6. 启动引导:
* oops.message.dispatchEvent(GameEvent.GuideStart, 0); // 启动ID为0的引导
*
* 7. 优势:
* - 数字ID与 smc.guides 数组索引完全对应
* - 支持一个事件触发多个引导
* - 向后兼容,现有代码无需大幅修改
* - 便于扩展新的引导步骤
* - 数组索引从0开始符合编程习惯
*/
/** 引导管理器配置 */
export interface IGuideManagerConfig {
/** 是否启用引导 */
enabled: boolean;
/** 引导配置文件路径 */
configPath: string;
/** 引导进度保存键 */
progressKey: string;
/** 默认引导ID */
defaultGuideId: string;
/** 引导层优先级 */
layerPriority: number;
}
/** 默认引导管理器配置 */
export const DefaultGuideConfig: IGuideManagerConfig = {
enabled: true,
configPath: "config/Guide",
progressKey: "guide_progress",
defaultGuideId: "welcome",
layerPriority: 1000
};
/** 引导事件类型 */
export enum GuideEventType {
/** 引导开始 */
GUIDE_START = "guide_start",
/** 引导步骤完成 */
STEP_COMPLETE = "step_complete",
/** 引导跳过 */
GUIDE_SKIP = "guide_skip",
/** 引导完成 */
GUIDE_COMPLETE = "guide_complete",
/** 引导错误 */
GUIDE_ERROR = "guide_error"
}
/** 引导步骤状态 */
export enum GuideStepStatus {
/** 未开始 */
NOT_STARTED = "not_started",
/** 进行中 */
IN_PROGRESS = "in_progress",
/** 已完成 */
COMPLETED = "completed",
/** 已跳过 */
SKIPPED = "skipped"
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "2a50d441-0bd3-4762-bd48-0f3007ad829f",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,16 @@
export const Tasks = [
{
id: 0,
name: "新手指引",
description: "新手指引描述",
reward: 100,
type: 0,
},
{
id: 1,
name: "每日任务",
description: "每日任务描述",
reward: 100,
},
]

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "8668f7df-174a-4b7a-9c82-370e572d0d35",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -13,8 +13,9 @@ import { EquipSpecialAttr } from "../common/config/Equips";
import { FightSet, getExpDrops, getStoneDrops, TooltipTypes } from "../common/config/Mission";
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
import { EnhancementType } from "../common/config/LevelUp";
import { MonsterDropManager } from "../common/config/Items";
import { Items, MonsterDropManager } from "../common/config/Items";
import { HeroInfo } from "../common/config/heroSet";
import { finishCurrGuide, GuideConfig, startGuide } from "../common/config/Guide";
const { ccclass, property } = _decorator;
@@ -124,7 +125,6 @@ export class HeroViewComp extends CCComp {
onLoad() {
this.as = this.getComponent(HeroSpine);
//console.log("[HeroViewComp]:hero view comp ",this.FIGHTCON)
this.on(GameEvent.HeroLvUp,this.to_update_lv,this)
this.on(GameEvent.FightEnd,this.do_fight_end,this)
const collider = this.node.getComponent(BoxCollider2D);
this.scheduleOnce(()=>{
@@ -273,13 +273,18 @@ export class HeroViewComp extends CCComp {
}
do_drop(){
let drop_item=MonsterDropManager.calculateMonsterDrops(this.hero_uuid,smc.data.mission,1)
startGuide(2)
this.scheduleOnce(()=>{
if(smc.guides[2]==0&&smc.current_guide==2&&smc.guides[1]==1) {
drop_item.push({item_uuid:Items[1008].uuid,count:20})
}
},0.1)
let {exp,gold,diamond}=MonsterDropManager.calculateBaseResourceDrops(HeroInfo[this.hero_uuid].quality,smc.data.mission,this.BUFFS.length)
oops.message.dispatchEvent(GameEvent.MonDead,{mon_uuid:this.hero_uuid,drops:drop_item,game_data:{exp:exp, gold:gold, diamond:diamond}})
if(drop_item.length>0){
for(let i=0;i<drop_item.length;i++){
let d_item=drop_item[i]
smc.addItem(d_item.item_uuid,d_item.count)
}
}
if(exp>0){
@@ -583,16 +588,6 @@ export class HeroViewComp extends CCComp {
}
to_update_lv(event:string,data:any){
if(this.fac==FacSet.MON) return
// console.log("[HeroViewComp]:升级",this.BUFFCOMP)
if(this.hero_uuid!=data.uuid) return
this.apply_buff(BuffAttr.HP_MAX,data.hp)
this.apply_buff(BuffAttr.AP,data.ap)
this.BUFFCOMP.lv_up()
// this.BUFFCOMP.tooltip(TooltipTypes.lvup)
}
/** 显示伤害数字 */
showDamage(damage: number, isCrit: boolean,anm:string="atked") {

View File

@@ -16,16 +16,12 @@ export class CardControllerComp extends CCComp {
bbg_y:number=40
bbg_x:any=[-300,-150,0,150,300]
protected onLoad(): void {
// this.on(GameEvent.MissionEnd,this.mission_home_to_mission,this)
}
start() {
console.log("CardControllerComp start",this.node)
this.page_init()
}
show_info(uuid:number,type:number){
// console.log("show_info",uuid)
}
protected update(dt: number): void {
if(smc.vmdata.game_over||smc.vmdata.game_pause){
return
@@ -35,28 +31,12 @@ export class CardControllerComp extends CCComp {
page_init(){
this.node.getChildByName("mission_home").active=true;
this.node.getChildByName("mission").active=false;
}
mission_home_to_mission(){
let mission=this.node.getChildByName("mission").getComponent(MissionComp)
mission.node.active = true;
mission.mission_start()
smc.mission.play = true;
}
mission_to_mission_home(){
let mission_home=this.node.getChildByName("mission_home").getComponent(MissionHomeComp)
this.node.getChildByName("mission_home").active = true
let mission=this.node.getChildByName("mission")
mission.active = false
mission_home.load_ui_heros()
}
show_hero_home(){
let hero_home=this.node.getChildByName("hero_home")
hero_home.active = true
}
/** 视图对象通过 ecs.Entity.remove(ControllerComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() {
this.node.destroy();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "c7b87b89-72d6-4bf8-9ed2-ead66b613984",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,243 @@
import { _decorator, director, Node } from "cc";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { GuideConfig, GuideConfigArray, GuideStepType, IGuideStep, findGuideByEndEvent, findGuideById, findGuideIndexById, findGuideByNumberId, finishCurrGuide, startGuide } from "../common/config/Guide";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { UIID } from "../common/config/GameUIConfig";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
const { ccclass } = _decorator;
/** 新手引导组件 */
@ccclass('GuideConComp')
export class GuideConComp extends CCComp {
/** Cocos Creator 组件生命周期方法 */
onLoad() {
console.log("[GuideConComp] onLoad 被调用");
this.on(GameEvent.GuideStart, this.GuideStart, this);
this.on(GameEvent.GuideEnd, this.GuideEnd, this);
}
start() {
this.init();
}
/** 初始化引导管理器 */
init() {
console.log("[GuideConComp] init");
this.initializeGuideProgress();
// 移除自动启动第一个引导,所有引导都变成触发式
// this.checkFirstGuide();
}
/** 初始化引导进度数组 */
private initializeGuideProgress() {
// 确保 smc.guides 存在且长度匹配
if (!smc.guides || smc.guides.length !== GuideConfigArray.length) {
smc.guides = new Array(GuideConfigArray.length).fill(0);
smc.syncGuide()
console.log("[GuideCon] 初始化 smc.guides 为全0");
}
}
GuideStart(e: any, data: any) {
console.log("[GuideCon] 监听到开始引导 key: ", data);
smc.current_guide=data
if(this.isAllGuidesCompleted()) return
const guide = findGuideByNumberId(data);
if (guide) this.displayStep(guide);
}
GuideEnd(e: any, data: any) {
console.log("[GuideCon] 监听到结束引导 key: ", data);
this.completeGuide(data)
}
/** 显示引导步骤 */
private displayStep(step: IGuideStep) {
console.log("[Tutorial] 根据step类型显示引导", step);
switch (step.type) {
case GuideStepType.TIP:
this.showTip(step);
break;
case GuideStepType.CLICK:
this.showClickGuide(step);
break;
case GuideStepType.DRAG:
this.showDragGuide(step);
break;
case GuideStepType.WAIT:
this.showWaitGuide(step);
break;
}
}
/** 信息引导 */
private showTip(step: IGuideStep) {
this.showGuideStepUI(step);
this.scheduleOnce(() => {
this.onStepCompleted(step);
}, step.waitTime ?? 2000);
}
/** 点击引导 */
private showClickGuide(step: IGuideStep) {
console.log("[Tutorial] 显示点击引导", step);
if (!step.targetPath) {
console.error("[Tutorial] 点击引导缺少目标路径");
return;
}
const targetNode = this.findTargetNode(step.targetPath);
if (!targetNode) {
console.error(`[Tutorial] 找不到目标节点: ${step.targetPath}`);
return;
}
console.log("[Tutorial] 开始点击引导UI", step.targetPath);
this.showGuideStepUI(step, targetNode);
}
/** 显示拖拽引导 */
private showDragGuide(step: IGuideStep) {
console.log("[Tutorial] 显示拖拽引导:", step.id);
this.showGuideStepUI(step);
}
/** 显示等待引导 */
private showWaitGuide(step: IGuideStep) {
console.log("[Tutorial] 显示等待引导:", step.id);
this.showGuideStepUI(step);
// 触摸监听器现在由 GuideSetpComp 管理
}
/** 步骤完成回调 */
private onStepCompleted(step: IGuideStep) {
console.log(`[Tutorial] 步骤完成: ${step.id}`);
finishCurrGuide(step.key)
// 检查是否有下一个引导
if (step.nextStep && step.nextStep.trim() !== "") {
const nextGuide = findGuideById(step.nextStep);
if (nextGuide && !this.isGuideCompleted(nextGuide.id)) {
console.log(`[GuideCon] 自动开始下一个引导: ${nextGuide.id}`);
startGuide(nextGuide.key)
return;
}
}
// 引导完成关闭UI
this.closeGuideStepUI();
}
private completeAllGuide(){
smc.guides = new Array(GuideConfigArray.length).fill(1);
smc.syncGuide()
}
/** 完成指定引导 */
private completeGuide(key:any) {
smc.finishGuide(key);
console.log(`[GuideCon] 引导 ${key} 已完成,进度数组: ${JSON.stringify(smc.guides)}`);
}
/** 判断指定引导是否已完成 */
private isGuideCompleted(guideId: string): boolean {
const guideIndex = findGuideIndexById(guideId);
if (guideIndex !== -1 && guideIndex < GuideConfigArray.length) {
return smc.guides[guideIndex] === 1;
}
return false;
}
/** 判断所有引导是否已完成 */
private isAllGuidesCompleted(): boolean {
return smc.guides.every(stepStatus => stepStatus === 1);
}
/** 打开引导UI */
private showGuideStepUI(step: IGuideStep, targetNode?: Node) {
console.log(`[GuideCon] 开始打开UI: ${step.id}, uiId: ${UIID.Guide}`);
// 关闭之前的引导UI
if (oops.gui.has(UIID.Guide)) {
oops.gui.remove(UIID.Guide);
console.log("[Tutorial] 关闭之前的引导UI", UIID.Guide);
}
this.doOpenGuideStepUI(step, targetNode);
}
doOpenGuideStepUI(step: IGuideStep, targetNode?: Node) {
try {
console.log("[Tutorial] 打开新的引导UI", UIID.Guide);
oops.gui.open(UIID.Guide, {
step: step,
stepIndex: 0,
totalSteps: 1,
targetNode: targetNode,
callbacks: {
onStepComplete: this.onStepCompleted.bind(this),
onComplete: this.completeAllGuide.bind(this)
}
});
console.log(`[GuideCon] 成功打开引导步骤UI: ${UIID.Guide}`);
} catch (error) {
console.error(`[GuideCon] 打开引导步骤UI失败: ${UIID.Guide}`, error);
oops.gui.toast(step.tipText );
}
}
/** 关闭引导步骤UI */
private closeGuideStepUI() {
console.log("[GuideCon] 关闭引导步骤UI", UIID.Guide);
oops.gui.remove(UIID.Guide);
}
/** 查找目标节点 */
private findTargetNode(path: string): Node | null {
console.log(`[GuideCon] 开始查找目标节点: ${path}`);
const pathParts = path.split('/');
let currentNode: any = director.getScene();
for (const part of pathParts) {
if (!currentNode || !currentNode.getChildByName) {
console.error(`[GuideCon] 节点 ${part} 不存在或没有getChildByName方法`);
break;
}
const childNode = currentNode.getChildByName(part);
if (!childNode) {
console.error(`[GuideCon] 找不到子节点: ${part}`);
console.log(`[GuideCon] 当前节点 ${currentNode.name} 的子节点:`, currentNode.children.map(c => c.name));
break;
}
currentNode = childNode;
}
if (currentNode) {
console.log(`[GuideCon] 目标节点查找成功:`, currentNode.position, currentNode.getWorldPosition());
return currentNode as Node;
} else {
console.error(`[GuideCon] 目标节点查找失败: ${path}`);
return null;
}
}
/** 重置引导 */
resetGuide() {
// 重置进度数组为全0
smc.guides = new Array(GuideConfigArray.length).fill(0);
smc.syncGuide()
console.log("[GuideCon] 重置引导,进度数组重置为:", JSON.stringify(smc.guides));
}
/** 组件销毁时清理 */
reset() {
// this.guideProgress = []; // This line is removed
oops.gui.remove(UIID.Guide);
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "1e280c31-a416-42c8-8239-f7f6782b904b",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,224 @@
import { _decorator, BlockInputEvents, Button, Label, Node, UITransform, Vec3 } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { IGuideStep, GuideStepType } from "../common/config/Guide";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
const { ccclass, property } = _decorator;
/** 引导步骤UI组件 - 完整的引导UI容器 */
@ccclass('GuideSetpComp')
@ecs.register('GuideSetp', false)
export class GuideSetpComp extends CCComp {
@property(Label)
private tipLabel: Label = null!;
@property(Node)
private tipNode: Node = null!;
@property(Node)
private handNode: Node = null!;
@property(Button)
private skipButton: Button = null!;
/** 当前引导步骤数据 */
private currentStep: IGuideStep | null = null;
/** 当前步骤索引 */
private currentStepIndex: number = 0;
/** 总步骤数 */
private totalSteps: number = 0;
/** 目标节点 */
private _targetNode: Node | null = null;
private _showTip: boolean = false;
private _showHand: boolean = false;
private _callback: any = null;
private _noInput: any = null;
/** 触摸监听器标志位 */
private _hasTouchListener: boolean = false;
/** 添加触摸监听器 */
private addTouchListener() {
// 如果已经有监听器,不要重复添加
if (this._hasTouchListener) {
console.log("[GuideSetpComp] 触摸监听器已存在,跳过添加");
return;
}
// 直接监听当前节点的触摸事件
this.node.on(Node.EventType.TOUCH_START, this.onTouchStart, this);
this._hasTouchListener = true;
console.log("[GuideSetpComp] 已添加触摸监听器到当前节点,等待用户点击");
}
/** 触摸开始事件处理 */
private onTouchStart(event: any) {
// 检查是否当前有等待引导在运行
if (!this.currentStep || this.currentStep.type !== GuideStepType.WAIT) {
return; // 如果没有等待引导,不处理触摸事件
}
console.log("[GuideSetpComp] 检测到触摸事件,完成等待引导");
// 移除触摸监听器
this.removeTouchListener();
// 完成当前引导
if (this._callback && this._callback.onStepComplete) {
this._callback.onStepComplete(this.currentStep);
}
}
/** 移除触摸监听器 */
private removeTouchListener() {
// 如果没有监听器,直接返回
if (!this._hasTouchListener) {
return;
}
// 直接从当前节点移除触摸事件监听
this.node.off(Node.EventType.TOUCH_START, this.onTouchStart, this);
this._hasTouchListener = false;
console.log("[GuideSetpComp] 已移除触摸监听器");
}
/** 组件初始化 */
start() {
console.log("[GuideSetpComp] start", this.node);
}
onAdded(args: any) {
console.log("[GuideSetpComp] onAdded", this.node);
this.initUI();
this._noInput=this.node.getComponent(BlockInputEvents);
this._noInput.enabled=false;
// 如有传入的参数,直接处理
if (args && args.step) {
this.handleStepInfo(args);
}
}
protected onEnable(): void {
console.log("[GuideSetpComp] onEnable", this.node);
}
/** 处理步骤信息 */
private handleStepInfo(data: any) {
const { step, stepIndex, totalSteps, targetNode,callbacks } = data;
this._noInput.enabled=step.noInput??false;
this._callback=callbacks;
if(targetNode){
this._targetNode=targetNode;
this._showTip=true;
this._showHand=true;
}else{
this._targetNode=this.node;
this._showTip=true;
this._showHand=false;
}
console.log("[GuideSetpComp] 处理步骤信息:", step);
// 显示步骤
this.showStep(step, stepIndex, totalSteps,targetNode);
// 如果有手指位置,直接设置
// this.setHandPosition(this._targetNode);
}
/** 初始化UI */
private initUI() {
// 设置初始状态
this.node.active = false;
this.node.setSiblingIndex(1000);
this.tipNode.active = false;
this.handNode.active = false;
}
/** 显示引导步骤 */
showStep(step: IGuideStep, stepIndex: number, totalSteps: number,targetNode: Node) {
this.currentStep = step;
this.currentStepIndex = stepIndex;
this.totalSteps = totalSteps;
// 将handNode和tipNode从当前父节点移除
this.handNode.parent=this._targetNode;
this.tipNode.parent=this._targetNode;
this.handNode.setPosition(this.currentStep?.handOffset?.x || 0, this.currentStep?.handOffset?.y || 0);
this.tipNode.setPosition(this.currentStep?.tipOffset?.x || 0, this.currentStep?.tipOffset?.y || 0);
// 设置setSiblingIndex最大
this.handNode.setSiblingIndex(this._targetNode.children.length - 1);
this.tipNode.setSiblingIndex(this._targetNode.children.length - 1);
// 更新UI内容
this.updateStepContent()
// 显示组件
this.show();
// 如果是等待引导,添加触摸监听器
if (step.type === GuideStepType.WAIT) {
this.addTouchListener();
}
}
/** 更新步骤内容 */
private updateStepContent() {
if (!this.currentStep || !this._targetNode) return;
// 根据目标节点调整tipNode的位置
// 假设tipNode相对于目标节点是固定的偏移
// 更新提示文本
if (this.tipLabel) {
this.tipLabel.string = this.currentStep.tipText ||"";
}
// 控制跳过按钮显示
}
/** 显示组件 */
private show() {
this.node.active = true;
if (this.tipNode) {
this.tipNode.active = true;
}
if (this.handNode) {
this.handNode.active = true;
}
}
/** 跳过按钮点击事件 */
private onSkipButtonClick() {
console.log("[GuideSetpComp] 跳过按钮点击事件");
this.tipNode.destroy();
this.handNode.destroy();
// oops.gui.removeByNode(this.node);
this._callback.onComplete();
}
/** 清理资源 */
private cleanup() {
// 移除触摸监听器
this.removeTouchListener();
this.currentStep = null;
this.currentStepIndex = 0;
this.totalSteps = 0;
}
/** 组件销毁时清理 */
reset() {
this.cleanup();
this.node.active = false;
}
/** 组件销毁时清理 */
onDestroy() {
// 清理资源
this.removeTouchListener();
this.tipNode.destroy();
this.handNode.destroy();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "afbf476b-b77b-4ca9-979f-ada073411c72",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -21,6 +21,8 @@ export class HCardUICom extends CCComp {
}
protected onLoad(): void {
this.on(GameEvent.UpdateHero,this.to_update_hero,this)
this.on(GameEvent.HeroUnlock,this.to_update_hero,this)
this.on(GameEvent.HeroLvUp,this.to_update_hero,this)
}
update(deltaTime: number) {

View File

@@ -6,24 +6,40 @@ import { smc } from '../common/SingletonModuleComp';
import { GameEvent } from '../common/config/GameEvent';
import { NumberFormatter } from '../common/config/BoxSet';
import { Items } from '../common/config/Items';
import { finishCurrGuide, GuideConfig } from '../common/config/Guide';
const { ccclass, property } = _decorator;
@ccclass('HInfoComp')
export class HInfoComp extends Component {
h_uuid:number=0
private guides:any=[0,1]
private guideends:any=[3,5]
start() {
}
onAdded(args: any) {
// console.log("[HInfoComp]:onAdded",args)
this.endGuide()
this.startNextGuide()
this.update_data(args)
}
startNextGuide(){
this.guides.forEach(guide_key=>{
if(smc.guides[guide_key]==0){
console.log("[HInfoComp]:推送启动引导:key",guide_key)
oops.message.dispatchEvent(GameEvent.GuideStart, guide_key)
return
}
})
}
endGuide(){
finishCurrGuide(3)
}
update(deltaTime: number) {
}
update_data(uuid:number){
this.h_uuid=uuid
let hero_data = HeroInfo[uuid]
console.log("[HInfoComp]:update_data",uuid,hero_data,this.node)
@@ -90,7 +106,8 @@ export class HInfoComp extends Component {
}
oops.gui.toast("英雄< "+HeroInfo[this.h_uuid].name+" >解锁成功")
this.update_data(this.h_uuid)
oops.message.dispatchEvent(GameEvent.UpdateHero, {uuid:this.h_uuid})
oops.message.dispatchEvent(GameEvent.GuideEnd,GuideConfig[3].key)
oops.message.dispatchEvent(GameEvent.HeroUnlock, {uuid:this.h_uuid})
}
uplevel(){
let lv=smc.heros[this.h_uuid].lv
@@ -111,8 +128,7 @@ export class HInfoComp extends Component {
}
this.update_data(this.h_uuid)
oops.gui.toast(`英雄< ${HeroInfo[this.h_uuid].name} >升级成功`)
oops.message.dispatchEvent(GameEvent.UpdateHero, {uuid:this.h_uuid})
oops.message.dispatchEvent(GameEvent.HeroLvUp, {uuid:this.h_uuid})
}
next_hero(){
let heros=getHeroList()

View File

@@ -9,7 +9,7 @@ const { ccclass, property } = _decorator;
export class HeroSelectCom extends Component {
slot:number=0
start() {
console.log("[HeroSelectCom]:start",this.node)
}
onAdded(args: any) {
// console.log("[HeroSelectCom]:onAdded",args)
@@ -29,7 +29,7 @@ export class HeroSelectCom extends Component {
let hero=heros[i]
// console.log("[HeroPageComp]:hero",hero)
if(hero){
this.load_hero(hero)
this.load_hero(hero,i)
}
}
}
@@ -42,7 +42,7 @@ export class HeroSelectCom extends Component {
children[i].destroy()
}
}
load_hero(uuid:number){
load_hero(uuid:number,index:number){
// console.log("[HeroPageComp]:load_hero",uuid)
let parent=this.node.getChildByName("main").getChildByName("view").getChildByName("heros")
let path = "game/gui/hcard"
@@ -52,6 +52,7 @@ export class HeroSelectCom extends Component {
return;
}
const node = instantiate(prefab) as unknown as Node;
node.name="hero"+index.toString()
node.parent = parent;
let hcard = node.getComponent(HCardUICom)!;
hcard.update_data(uuid,{type:HeroConSet.SELECT,slot:this.slot})

View File

@@ -23,7 +23,6 @@ export class MissionHeroCompComp extends CCComp {
current_hero_num:number=-1
heros:any=[]
onLoad(){
this.on(GameEvent.UseHeroCard,this.call_hero,this)
this.on(GameEvent.FightReady,this.fight_ready,this)
this.on(GameEvent.Zhaohuan,this.zhao_huan,this)
this.on(GameEvent.FightEnd,this.clear_heros,this)
@@ -71,52 +70,6 @@ export class MissionHeroCompComp extends CCComp {
call_hero(event: string, args: any){
// console.log("[MissionHeroComp]:call_hero",this.heros,this.current_hero_num,args)
// 尝试升级现有英雄
if (this.tryUpgradeExistingHero(args.uuid)) {
return
}
// 添加新英雄
this.addNewHero(args.uuid)
}
/**
* 尝试升级现有英雄
* @param uuid 英雄UUID
* @returns 是否成功升级
*/
private tryUpgradeExistingHero(uuid: number): boolean {
for (let i = 0; i < this.heros.length; i++) {
// console.log("[MissionHeroComp]:tryUpgradeExistingHero",this.heros,i,uuid)
if (this.heros[i].uuid === uuid) {
this.heros[i].count++
smc.vmdata[`hero${i+1}`].count=this.heros[i].count
oops.message.dispatchEvent(GameEvent.HeroLvUp, { uuid: uuid })
return true
}
}
return false
}
/**
* 添加新英雄到当前槽位
* @param uuid 英雄UUID
*/
private addNewHero(uuid: number) {
this.current_hero_num++
if(this.current_hero_num >= FightSet.HERO_MAX_NUM) return
this.current_hero_uuid = uuid
this.heros[this.current_hero_num].uuid = uuid
this.heros[this.current_hero_num].count = 1
this.heros[this.current_hero_num].quality = QualitySet.GREEN
this.addHero(uuid, false)
}
/** 添加英雄 */
private addHero(uuid:number=1001,is_zhaohuan:boolean=false) {
// console.log("[MissionHeroComp]:addHero",uuid,is_zhaohuan)

View File

@@ -5,6 +5,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
import { smc } from "../common/SingletonModuleComp";
import { GameEvent } from "../common/config/GameEvent";
import { HeroPageComp } from "./HeroPageComp";
import { finishCurrGuide, GuideConfig, startGuide } from "../common/config/Guide";
const { ccclass, property } = _decorator;
@@ -13,7 +14,6 @@ const { ccclass, property } = _decorator;
@ecs.register('MissionHome', false)
export class MissionHomeComp extends CCComp {
protected onLoad(): void {
this.on(GameEvent.MissionEnd,this.mission_end,this)
}
@@ -21,8 +21,26 @@ export class MissionHomeComp extends CCComp {
start() {
this.home_active()
}
onEnable(){
this.endGuide()
this.startNextGuide(); // 启动第一个引导
startGuide(1)
startGuide(2)
}
/** 启动下一个引导 */
private startNextGuide() {
// 检查是否还有未完成的引导
if(smc.guides[GuideConfig[0].key]==0){
oops.message.dispatchEvent(GameEvent.GuideStart,0)
}
}
private endGuide(){
// finishCurrGuide(0)
}
start_mission() {
finishCurrGuide(1)
oops.message.dispatchEvent(GameEvent.MissionStart, {})
this.node.active=false;
}
@@ -69,6 +87,7 @@ export class MissionHomeComp extends CCComp {
break
case "heros":
page_heros.active=true
finishCurrGuide(2)
let page_heros_com=page_heros.getComponent(HeroPageComp)!
page_heros_com.update_heros()
btn_heros.getChildByName("act").active=true