Compare commits

..

10 Commits

Author SHA1 Message Date
tiendat3699 208e423154 feat: update release 1.0.0 2024-04-08 10:39:16 +07:00
tiendat3699 a85ebbaf68 feat: star screen animation 2024-04-05 17:44:35 +07:00
tiendat3699 d492ccbf21 fix: bug 5/4 2024-04-05 15:09:19 +07:00
tiendat3699 8e082bace0 fix: bug 5/4 2024-04-05 11:43:09 +07:00
tiendat3699 aff88f1d3f feat: fix bug 4/4 2024-04-04 18:27:04 +07:00
tiendat3699 56d96e7a3c feat: add goal animation 2024-04-04 10:20:56 +07:00
tiendat3699 bbdb01ac87 feat: add sfx 2024-04-03 16:43:18 +07:00
tiendat3699 15bb43a4ca fix: bug 1/4 2024-04-02 09:26:53 +07:00
tiendat3699 6caaba5ccf feat: update pop up end game logic 2024-04-01 09:27:35 +07:00
tiendat3699 ddcede96ae feat: add pop up end game, UI logic 2024-03-29 18:24:58 +07:00
192 changed files with 34893 additions and 4252 deletions

View File

@ -0,0 +1,917 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "startScreen",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 60,
"speed": 1,
"wrapMode": 0,
"enableTrsBlending": false,
"_duration": 0.6666666666666666,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 12
},
{
"__id__": 23
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"position"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Bear"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.16666666666666666,
0.25,
0.3333333333333333,
0.4166666666666667,
0.5,
0.5833333333333334,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1500,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 930,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 560,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 467.5,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 375,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 282.5,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 251.6666717529297,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 220.8333282470703,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 190,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.16666666666666666,
0.25,
0.3333333333333333,
0.4166666666666667,
0.5,
0.5833333333333334,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 155,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 190,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 155,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 190,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 155,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 190,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 190,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 170,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 155,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.08333333333333333,
0.16666666666666666,
0.25,
0.3333333333333333,
0.4166666666666667,
0.5,
0.5833333333333334,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 13
},
"proxy": null
},
"_channels": [
{
"__id__": 15
},
{
"__id__": 17
},
{
"__id__": 19
},
{
"__id__": 21
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 14
},
"position"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Rabit"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 16
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 2,
"value": 400,
"rightTangent": -1020,
"rightTangentWeight": 204.00009155273438,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 1,
"value": -280,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": -1020,
"leftTangentWeight": 204.00009155273438,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 18
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.16666666666666666,
0.3333333333333333,
0.5,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 2,
"value": -165,
"rightTangent": 0,
"rightTangentWeight": 0.07999999821186066,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 3,
"value": -350,
"rightTangent": 1110,
"rightTangentWeight": 55.500022888183594,
"leftTangent": -1192.22216796875,
"leftTangentWeight": 53.650020599365234,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 3,
"value": -165,
"rightTangent": 0,
"rightTangentWeight": 0.07999999821186066,
"leftTangent": 1110,
"leftTangentWeight": 55.500022888183594,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 3,
"value": -350,
"rightTangent": 1110,
"rightTangentWeight": 55.500022888183594,
"leftTangent": -1192.22216796875,
"leftTangentWeight": 53.650020599365234,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 1,
"value": -165,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 1110,
"leftTangentWeight": 55.500022888183594,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 20
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 22
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 24
},
"proxy": null
},
"_channels": [
{
"__id__": 26
},
{
"__id__": 28
},
{
"__id__": 30
},
{
"__id__": 32
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 25
},
"position"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/StartButton"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 27
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.23333333333333334,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 29
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.23333333333333334,
0.43333333333333335,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1500,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 2,
"value": 1500,
"rightTangent": 0,
"rightTangentWeight": 0.07833333313465118,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 0,
"value": -975,
"rightTangent": 9589.560546875,
"rightTangentWeight": 1,
"leftTangent": 9589.560546875,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 2,
"tangentWeightMode": 1,
"value": -800,
"rightTangent": -4449.05712890625,
"rightTangentWeight": 1,
"leftTangent": -4449.05712890625,
"leftTangentWeight": 121.2261962890625,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 31
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.23333333333333334,
0.6666666666666666
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 33
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "e2dd589b-be99-401b-abc4-862267d45f20",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "startScreen"
}
}

View File

@ -0,0 +1,841 @@
[
{
"__type__": "cc.AnimationClip",
"_name": "startScreen2",
"_objFlags": 0,
"__editorExtras__": {
"embeddedPlayerGroups": []
},
"_native": "",
"sample": 60,
"speed": 1,
"wrapMode": 22,
"enableTrsBlending": false,
"_duration": 0.5,
"_hash": 500763545,
"_tracks": [
{
"__id__": 1
},
{
"__id__": 12
},
{
"__id__": 23
},
{
"__id__": 34
},
{
"__id__": 45
}
],
"_exoticAnimation": null,
"_events": [],
"_embeddedPlayers": []
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 2
},
"proxy": null
},
"_channels": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 3
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/StartButton"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 5
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.9300000071525574,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 7
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.9300000071525574,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 9
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0.8999999761581421,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 11
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 13
},
"proxy": null
},
"_channels": [
{
"__id__": 15
},
{
"__id__": 17
},
{
"__id__": 19
},
{
"__id__": 21
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 14
},
"eulerAngles"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Rabit"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 16
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 18
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 20
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -2,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 22
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 24
},
"proxy": null
},
"_channels": [
{
"__id__": 26
},
{
"__id__": 28
},
{
"__id__": 30
},
{
"__id__": 32
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 25
},
"eulerAngles"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Bear"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 27
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 29
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 31
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 0,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 2,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": null
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 33
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 35
},
"proxy": null
},
"_channels": [
{
"__id__": 37
},
{
"__id__": 39
},
{
"__id__": 41
},
{
"__id__": 43
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 36
},
"scale"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Title"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 38
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.05,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 40
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.05,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 42
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 1.05,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 44
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.VectorTrack",
"_binding": {
"__type__": "cc.animation.TrackBinding",
"path": {
"__id__": 46
},
"proxy": null
},
"_channels": [
{
"__id__": 48
},
{
"__id__": 50
},
{
"__id__": 52
},
{
"__id__": 54
}
],
"_nComponents": 3
},
{
"__type__": "cc.animation.TrackPath",
"_paths": [
{
"__id__": 47
},
"eulerAngles"
]
},
{
"__type__": "cc.animation.HierarchyPath",
"path": "Bg/Title"
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 49
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 51
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 53
}
},
{
"__type__": "cc.RealCurve",
"_times": [
0,
0.5
],
"_values": [
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": -2,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
},
{
"__type__": "cc.RealKeyframeValue",
"interpolationMode": 0,
"tangentWeightMode": 0,
"value": 2,
"rightTangent": 0,
"rightTangentWeight": 1,
"leftTangent": 0,
"leftTangentWeight": 1,
"easingMethod": 0,
"__editorExtras__": {
"tangentMode": 0
}
}
],
"preExtrapolation": 1,
"postExtrapolation": 1
},
{
"__type__": "cc.animation.Channel",
"_curve": {
"__id__": 55
}
},
{
"__type__": "cc.RealCurve",
"_times": [],
"_values": [],
"preExtrapolation": 1,
"postExtrapolation": 1
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "2.0.3",
"importer": "animation-clip",
"imported": true,
"uuid": "e3bf85a2-4c1c-4e7c-aad9-212736a909f6",
"files": [
".cconb"
],
"subMetas": {},
"userData": {
"name": "startScreen2"
}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "7745538c-645c-4a76-bbfc-b42ec99d7bcc",
"uuid": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"files": [
".json",
"SuperBubble-Rpaj3.ttf"
"Candy-Beans.ttf"
],
"subMetas": {},
"userData": {}

View File

@ -921,7 +921,7 @@
"__uuid__": "018b85ed-f07a-4f26-b29c-7c3eb28cc634",
"__expectedType__": "cc.Prefab"
},
"_maxSpeed": 70,
"_maxSpeed": 60,
"_rigidBody": {
"__id__": 49
},
@ -941,11 +941,11 @@
"__id__": 47
},
"_hitSound": {
"__uuid__": "6a432293-3852-4267-be19-c671f36fe9f0",
"__uuid__": "b122d38e-ecf1-42e2-8b26-c09d306d90d9",
"__expectedType__": "cc.AudioClip"
},
"_ballThrowSound": {
"__uuid__": "97c8a166-c717-41bd-837f-bd1733e2ee1c",
"_hitFlipperSound": {
"__uuid__": "a76cc94a-6331-47e7-b8aa-0caeea6a79eb",
"__expectedType__": "cc.AudioClip"
},
"_jumpCurve": {

View File

@ -1119,7 +1119,11 @@
"_animation": {
"__id__": 82
},
"time": 30,
"_collectSound": {
"__uuid__": "1ac12acc-dde3-4d31-9106-dfc30c030d40",
"__expectedType__": "cc.AudioClip"
},
"time": 10,
"_id": ""
},
{

View File

@ -318,7 +318,7 @@
"__id__": 16
},
"_hitSound": {
"__uuid__": "1f602e14-2769-4903-b4d2-b0977eeaf36b",
"__uuid__": "65a023cb-b98f-4470-ba2d-4eba9fe184fe",
"__expectedType__": "cc.AudioClip"
},
"_score": 0,

View File

@ -77,7 +77,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 86.92,
"width": 60.62,
"height": 54.4
},
"_anchorPoint": {
@ -122,7 +122,7 @@
"_overflow": 0,
"_enableWrapText": true,
"_font": {
"__uuid__": "7745538c-645c-4a76-bbfc-b42ec99d7bcc",
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
@ -237,7 +237,6 @@
"__id__": 0
},
"fileId": "1fuwMYcsRH06ykaXQ3fPi3",
"instance": null,
"targetOverrides": null
"instance": null
}
]

View File

@ -0,0 +1,143 @@
[
{
"__type__": "cc.Prefab",
"_name": "Star",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "Star",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 751.877,
"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,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 52,
"height": 49
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "480yd82AtKIqjJBLbl3rlS"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "5b5a3073-f986-4350-9ef0-e1fddb56a494@f9941",
"__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": "1fsjnPw61KILwwKyxIzU9M"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d3ooykM2hC97QNNNBYXSSK",
"targetOverrides": null
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.43",
"importer": "prefab",
"imported": true,
"uuid": "35274179-f40e-4de9-a5d5-43fba9c12669",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "Star"
}
}

View File

@ -0,0 +1,12 @@
{
"ver": "1.1.0",
"importer": "directory",
"imported": true,
"uuid": "5461daf7-e832-44cd-a5e2-e9611e3434c9",
"files": [],
"subMetas": {},
"userData": {
"compressionType": {},
"isRemoteBundle": {}
}
}

View File

@ -0,0 +1,826 @@
[
{
"__type__": "cc.Prefab",
"_name": "itemNormal",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "itemNormal",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 24
}
],
"_active": true,
"_components": [
{
"__id__": 32
},
{
"__id__": 34
},
{
"__id__": 36
}
],
"_prefab": {
"__id__": 38
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -580,
"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": "top",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
},
{
"__id__": 9
}
],
"_active": true,
"_components": [
{
"__id__": 19
},
{
"__id__": 21
}
],
"_prefab": {
"__id__": 23
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -233,
"y": -90,
"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": "Sprite",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
}
],
"_prefab": {
"__id__": 8
},
"_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": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "18tXKchD1Dr48NskmoEDeH"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 50
},
"_spriteFrame": {
"__uuid__": "0cef1981-83f4-4681-8ca8-2f11e3162169@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": "2cQAeOCKBIariMukuouuY9"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "53p/E2Qw5PC42ngf9NKIN1",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 10
},
{
"__id__": 12
},
{
"__id__": 14
},
{
"__id__": 16
}
],
"_prefab": {
"__id__": 18
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 7.105427357601002e-15,
"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,
"node": {
"__id__": 9
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "50rVR8jQZLl7q7CPZCrsLP"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 9
},
"_enabled": true,
"__prefab": {
"__id__": 13
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_string": "4",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 61,
"_fontSize": 60,
"_fontFamily": "Arial",
"_lineHeight": 60,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b02ZbVP2BOYK6EMHsKPTJ2"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 9
},
"_enabled": true,
"__prefab": {
"__id__": 15
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 6.439293542825908e-15,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 53.117999999999995,
"_originalHeight": 75.6,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "76HqScksFCcZ6GUvSeKOhP"
},
{
"__type__": "cc.LabelOutline",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 9
},
"_enabled": true,
"__prefab": {
"__id__": 17
},
"_color": {
"__type__": "cc.Color",
"r": 96,
"g": 96,
"b": 96,
"a": 255
},
"_width": 4,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "95uDDSqJpEvq+ATOvbMO/W"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "2dvXaY9F1K75NrtIUWTWpc",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 20
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 100
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "89K0ThrjlLLqRGRyJIoMq8"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 22
},
"_alignFlags": 10,
"_target": null,
"_left": 45,
"_right": 0,
"_top": 18.5,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9dCqDdZadKL6u61sb0jRVB"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d9qqj7PD9IYZkPDopIuKbY",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 25
},
{
"__id__": 27
},
{
"__id__": 29
}
],
"_prefab": {
"__id__": 31
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 65,
"y": -90,
"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,
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_contentSize": {
"__type__": "cc.Size",
"width": 426,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "8f/If4pqVLNKjacc6x/7j3"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 28
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_string": "100000",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 81,
"_fontSize": 80,
"_fontFamily": "Arial",
"_lineHeight": 80,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "953S2lrSxMyYur/EgwU4QW"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 24
},
"_enabled": true,
"__prefab": {
"__id__": 30
},
"_alignFlags": 45,
"_target": null,
"_left": 180,
"_right": 50,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 42.26,
"_originalHeight": 50.4,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "45FuNbJ7xHAYhyQjKStjxj"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "6bBO1CaHdDDKNnRkS7MQlG",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 33
},
"_contentSize": {
"__type__": "cc.Size",
"width": 656,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "12Nqr7ER9Ow7DeP6uuvVGT"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 35
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "989a5cd8-943d-4065-9b3e-fc833596a6fc@f9941",
"__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": "02Ua8Kgi5L/ZH3dLv9B+bK"
},
{
"__type__": "552d1g5QNpOeIBUm3Wr1J5c",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 37
},
"_bg": {
"__id__": 34
},
"_scoreText": {
"__id__": 27
},
"_topText": {
"__id__": 12
},
"_highLightColor": {
"__type__": "cc.Color",
"r": 113,
"g": 141,
"b": 238,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "dbKG8fYCVAvJUI5x0eAfvD"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "6bZKxhllhMCqrTReiih0t4",
"targetOverrides": null
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.43",
"importer": "prefab",
"imported": true,
"uuid": "45fbee0e-e0ae-4e69-828e-ee8e725f3c5c",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "itemNormal"
}
}

View File

@ -0,0 +1,913 @@
[
{
"__type__": "cc.Prefab",
"_name": "itemTop1",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "itemTop1",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 20
},
{
"__id__": 28
}
],
"_active": true,
"_components": [
{
"__id__": 40
},
{
"__id__": 42
},
{
"__id__": 44
}
],
"_prefab": {
"__id__": 46
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -10,
"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": "top",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 13
},
{
"__id__": 15
},
{
"__id__": 17
}
],
"_prefab": {
"__id__": 19
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -232.5,
"y": -58.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": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -17.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.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 101,
"height": 102
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "06D3Moa3VHfIAlB85/p4VS"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 204,
"b": 0,
"a": 255
},
"_string": "1",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 61,
"_fontSize": 60,
"_fontFamily": "Arial",
"_lineHeight": 60,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "75JU0twYBCV4xrGL3Kylf6"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 35,
"_bottom": 6.439293542825908e-15,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 53.117999999999995,
"_originalHeight": 75.6,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5bQ0X7vzRNMr55LtO97SRv"
},
{
"__type__": "cc.LabelOutline",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 102,
"b": 0,
"a": 255
},
"_width": 4,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "40bKbcvN5E84Ydy7sEwJcK"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "44MsJsH3hBAZbfJwQA1D5d",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 14
},
"_contentSize": {
"__type__": "cc.Size",
"width": 101,
"height": 137
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e1IhbAnCRP3Yq489V9jwSA"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 16
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "5037588b-9bac-44f1-ada1-020b001bb3d4@f9941",
"__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": "6bjvr2ux5H75wvUhPU+aW6"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 18
},
"_alignFlags": 9,
"_target": null,
"_left": 45,
"_right": 0,
"_top": -10,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1eKHMZ9txAYI/d1307l68i"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d8RptcfwhBAa8uRvV3pbqv",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 21
},
{
"__id__": 23
},
{
"__id__": 25
}
],
"_prefab": {
"__id__": 27
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 65,
"y": -90,
"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,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 22
},
"_contentSize": {
"__type__": "cc.Size",
"width": 426,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "72A58S/o5A/pAKw7uxNIQd"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 24
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 78,
"b": 1,
"a": 255
},
"_string": "100000",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 81,
"_fontSize": 80,
"_fontFamily": "Arial",
"_lineHeight": 80,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "26bQkSjSBLjZHtDuGitOzD"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_alignFlags": 45,
"_target": null,
"_left": 180,
"_right": 50,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 42.26,
"_originalHeight": 50.4,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "cf8+W56NRJT6sRRqJivrby"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "ee1htKmyJJ/qSbIesKagXh",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_prefab": {
"__id__": 29
},
"__editorExtras__": {}
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 28
},
"asset": {
"__uuid__": "08db7198-bf32-48a4-b5c6-cb88bdb15478",
"__expectedType__": "cc.Prefab"
},
"fileId": "8dLJOK/3dIHrry1f3GsMwX",
"instance": {
"__id__": 30
},
"targetOverrides": null
},
{
"__type__": "cc.PrefabInstance",
"fileId": "d2DUrhWMxJb6lzECsBr/jC",
"prefabRootNode": {
"__id__": 1
},
"mountedChildren": [],
"mountedComponents": [
{
"__id__": 31
}
],
"propertyOverrides": [
{
"__id__": 35
},
{
"__id__": 37
},
{
"__id__": 38
},
{
"__id__": 39
}
],
"removedComponents": []
},
{
"__type__": "cc.MountedComponentsInfo",
"targetInfo": {
"__id__": 32
},
"components": [
{
"__id__": 33
}
]
},
{
"__type__": "cc.TargetInfo",
"localID": [
"8dLJOK/3dIHrry1f3GsMwX"
]
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {
"mountedRoot": {
"__id__": 28
}
},
"node": {
"__id__": 28
},
"_enabled": true,
"__prefab": {
"__id__": 34
},
"_alignFlags": 18,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "13+utr2VVK3KwmWKqO283a"
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 36
},
"propertyPath": [
"_name"
],
"value": "FxLeaderBoard"
},
{
"__type__": "cc.TargetInfo",
"localID": [
"8dLJOK/3dIHrry1f3GsMwX"
]
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 36
},
"propertyPath": [
"_lpos"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": -90,
"z": 0
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 36
},
"propertyPath": [
"_lrot"
],
"value": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
}
},
{
"__type__": "CCPropertyOverrideInfo",
"targetInfo": {
"__id__": 36
},
"propertyPath": [
"_euler"
],
"value": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
}
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 41
},
"_contentSize": {
"__type__": "cc.Size",
"width": 656,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5ayjSEeAND+6ZGusQXSvrc"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 43
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "65bd68ee-c310-4a89-81b5-4c8a7d57b458@f9941",
"__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": "7eI5LWcClIO5zhbfjgOrsR"
},
{
"__type__": "552d1g5QNpOeIBUm3Wr1J5c",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 45
},
"_bg": {
"__id__": 42
},
"_highLightColor": {
"__type__": "cc.Color",
"r": 113,
"g": 141,
"b": 238,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "79errFT/JL+rq4ieCK7Gki"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "f9uSHaj7BMlIwLhcEY9s8R",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": [
{
"__id__": 28
}
]
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.43",
"importer": "prefab",
"imported": true,
"uuid": "44541b9d-0cbe-4e00-8819-64b15d93dea7",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "itemTop1"
}
}

View File

@ -0,0 +1,737 @@
[
{
"__type__": "cc.Prefab",
"_name": "itemTop2",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "itemTop2",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 20
}
],
"_active": true,
"_components": [
{
"__id__": 28
},
{
"__id__": 30
},
{
"__id__": 32
}
],
"_prefab": {
"__id__": 34
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -200,
"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": "top",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 13
},
{
"__id__": 15
},
{
"__id__": 17
}
],
"_prefab": {
"__id__": 19
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -228.5,
"y": -58.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": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -3,
"y": -17.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.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 103,
"height": 102
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "61t1D5iHVHIrfRqG/uW/E6"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 202,
"g": 211,
"b": 228,
"a": 255
},
"_string": "2",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 61,
"_fontSize": 60,
"_fontFamily": "Arial",
"_lineHeight": 60,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c3p7sOWDRNUokgX8MGqsyF"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 6,
"_top": 35,
"_bottom": 6.439293542825908e-15,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 53.117999999999995,
"_originalHeight": 75.6,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2abEt1Ja1CtqNxk3xMCJFo"
},
{
"__type__": "cc.LabelOutline",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_color": {
"__type__": "cc.Color",
"r": 99,
"g": 113,
"b": 133,
"a": 255
},
"_width": 4,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4eAtE+DrBIgb0jJv6fBI5r"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "7d0NoFQtlBg4bcoJmwx/JR",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 14
},
"_contentSize": {
"__type__": "cc.Size",
"width": 109,
"height": 137
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5c+ZrFOIBPA6kxY6P6xMG4"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 16
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "fbbd2af6-c128-44ad-b737-679c35472653@f9941",
"__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": "1a4heGR6pNNoOFzsQ4qx/i"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 18
},
"_alignFlags": 9,
"_target": null,
"_left": 45,
"_right": 0,
"_top": -10,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "38kVaEzY5Ow5NozrTjJ4Kg"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "43UWX8MbJPYLZj/9W48d/f",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 21
},
{
"__id__": 23
},
{
"__id__": 25
}
],
"_prefab": {
"__id__": 27
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 65,
"y": -90,
"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,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 22
},
"_contentSize": {
"__type__": "cc.Size",
"width": 426,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5eH269ozFF0r6q08t6Jo5r"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 24
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 95,
"g": 83,
"b": 78,
"a": 255
},
"_string": "100000",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 81,
"_fontSize": 80,
"_fontFamily": "Arial",
"_lineHeight": 80,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "aeY+UjMsxCipmuaUYf2uCx"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_alignFlags": 45,
"_target": null,
"_left": 180,
"_right": 50,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 42.26,
"_originalHeight": 50.4,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d8bj5Jb0ZF84gkM+U4Vj48"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "799zgsDlJBGbN3uLltly8J",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 29
},
"_contentSize": {
"__type__": "cc.Size",
"width": 656,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "27G8RhkudK5IQl1K7dWhm1"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 31
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "989a5cd8-943d-4065-9b3e-fc833596a6fc@f9941",
"__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": "89AXFl5nBDda+ETpEcQNpe"
},
{
"__type__": "552d1g5QNpOeIBUm3Wr1J5c",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 33
},
"_bg": {
"__id__": 30
},
"_scoreText": {
"__id__": 23
},
"_topText": {
"__id__": 6
},
"_highLightColor": {
"__type__": "cc.Color",
"r": 113,
"g": 141,
"b": 238,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a87a1dDepJbr3/Y6l3nfUc"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "5dP05mPalLwZZ2b8ZT1A3S",
"targetOverrides": null
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.43",
"importer": "prefab",
"imported": true,
"uuid": "a1083c12-2895-4ff8-8f0c-012f9d6684f5",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "itemTop2"
}
}

View File

@ -0,0 +1,737 @@
[
{
"__type__": "cc.Prefab",
"_name": "itemTop3",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "itemTop3",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 20
}
],
"_active": true,
"_components": [
{
"__id__": 28
},
{
"__id__": 30
},
{
"__id__": 32
}
],
"_prefab": {
"__id__": 34
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -390,
"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": "top",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
}
],
"_active": true,
"_components": [
{
"__id__": 13
},
{
"__id__": 15
},
{
"__id__": 17
}
],
"_prefab": {
"__id__": 19
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -232.5,
"y": -58.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": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -17.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.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_contentSize": {
"__type__": "cc.Size",
"width": 101,
"height": 101
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "368gHxKB5Apqd0tizVhtg1"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 227,
"g": 115,
"b": 91,
"a": 255
},
"_string": "3",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 61,
"_fontSize": 60,
"_fontFamily": "Arial",
"_lineHeight": 60,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "89zH1Z9mpBUKOptexSsaCc"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_alignFlags": 45,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 35,
"_bottom": 6.439293542825908e-15,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 53.117999999999995,
"_originalHeight": 75.6,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "26aSxa/n1HP4WeMiJZNg1Q"
},
{
"__type__": "cc.LabelOutline",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"_color": {
"__type__": "cc.Color",
"r": 126,
"g": 41,
"b": 19,
"a": 255
},
"_width": 4,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "3e20tfG/ZEZqoVu6uSplwa"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "66t4AsPS9IhL8BFW2f7t9M",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 14
},
"_contentSize": {
"__type__": "cc.Size",
"width": 101,
"height": 136
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "66dUeI27ZIKrvJXa1mCYPQ"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 16
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "7629f6bd-fb1b-4328-9fab-758aac42550f@f9941",
"__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": "3eIAPhahVH5Y6NaE7cwkz6"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"__prefab": {
"__id__": 18
},
"_alignFlags": 9,
"_target": null,
"_left": 45,
"_right": 0,
"_top": -9.5,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 0,
"_originalHeight": 0,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d4hhPvwgVOQ7UnTLsXj16B"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "bc9FUTWYZL54d9mhpJg/ae",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 21
},
{
"__id__": 23
},
{
"__id__": 25
}
],
"_prefab": {
"__id__": 27
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 65,
"y": -90,
"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,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 22
},
"_contentSize": {
"__type__": "cc.Size",
"width": 426,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "68xAym3BBDaInUm0oLtONo"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 24
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 95,
"g": 83,
"b": 78,
"a": 255
},
"_string": "100000",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 81,
"_fontSize": 80,
"_fontFamily": "Arial",
"_lineHeight": 80,
"_overflow": 2,
"_enableWrapText": true,
"_font": {
"__uuid__": "4eb60b5b-72b8-497c-b499-d7921c9b84db",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e20tIU3itCDJ1wAUa3yN2K"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"__prefab": {
"__id__": 26
},
"_alignFlags": 45,
"_target": null,
"_left": 180,
"_right": 50,
"_top": 0,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 42.26,
"_originalHeight": 50.4,
"_alignMode": 2,
"_lockFlags": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "e4DYEJxcNCYJu23xrprXj0"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "24NclmKvBBt6jpoRXg7Xmz",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 29
},
"_contentSize": {
"__type__": "cc.Size",
"width": 656,
"height": 180
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b74RtF4ypM34F4i5W/NnmH"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 31
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "989a5cd8-943d-4065-9b3e-fc833596a6fc@f9941",
"__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": "75f6Htv3ZNzokyi5rSUFnl"
},
{
"__type__": "552d1g5QNpOeIBUm3Wr1J5c",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 33
},
"_bg": {
"__id__": 30
},
"_scoreText": {
"__id__": 23
},
"_topText": {
"__id__": 6
},
"_highLightColor": {
"__type__": "cc.Color",
"r": 113,
"g": 141,
"b": 238,
"a": 255
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "853l7J73lP5Zy1vj3mxiwe"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "ceuq3bJktG3ojoU7UZJ27S",
"targetOverrides": null
}
]

View File

@ -0,0 +1,13 @@
{
"ver": "1.1.43",
"importer": "prefab",
"imported": true,
"uuid": "731196cb-d101-433a-9fa5-90699deb0d37",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "itemTop3"
}
}

View File

@ -318,7 +318,7 @@
"__id__": 16
},
"_hitSound": {
"__uuid__": "1f602e14-2769-4903-b4d2-b0977eeaf36b",
"__uuid__": "65a023cb-b98f-4470-ba2d-4eba9fe184fe",
"__expectedType__": "cc.AudioClip"
},
"_score": 5,

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +1,31 @@
import { _decorator } from 'cc';
import * as CryptoES from 'crypto-es';
import { GameManager } from '../Manager/GameManager';
import Utilities from '../Utilities';
import Singleton from '../Singleton';
export let CryptoESDefault = CryptoES.default;
const { ccclass, property } = _decorator;
window.addEventListener('message', (data) => {
const { data: res } = data;
const objectRes = Utilities.getJson(res);
if (objectRes) {
const { type, value } = objectRes;
if (type === 'newTicket') {
BEConnector.instance.numberTicket += value;
GameManager.instance.gameRelive();
}
}
});
@ccclass('BEConnector')
export default class BEConnector {
public static _instance: BEConnector = null;
export default class BEConnector extends Singleton<BEConnector>('BEConnector') {
private token: string;
private skinId: string;
private tournamentId: string;
private key: string;
private deviceInfo: string;
// Ticket infors
// Ticket info
public numberTicket: number;
public maxScore: number;
public currentScore: number;
public topScores: [] = [];
private mileStone: string;
public gameScore: number = 0;
private gameURL: string = '';
public static get instance() {
if (null == this._instance) {
this._instance = new BEConnector();
}
return this._instance;
}
constructor() {
super();
this.getGameData();
}
@ -55,13 +37,23 @@ export default class BEConnector {
this.tournamentId = url.get('tournamentId');
this.deviceInfo = url.get('deviceInfo');
this.numberTicket = parseInt(url.get('numberTicket'));
this.maxScore = parseInt(url.get('maxScore')) || 99999;
this.numberTicket = parseInt(url.get('numberTicket')) || 0;
this.maxScore = parseInt(url.get('maxScore')) || 0;
this.currentScore = parseInt(url.get('currentScore')) || 0;
this.mileStone = url.get('mileStone');
this.mileStone = url.get('mileStone') || '';
this.gameURL = ENV_CONFIG[url.get('env')];
}
public async getInfo() {
try {
const res = await fetch(`${this.gameURL}/promotions/detail/${this.tournamentId}`);
const json = await res.json();
this.topScores = json.tScores;
} catch (error) {
console.log(error);
}
}
public async authenticate() {
await fetch(
`${this.gameURL}/promotions/authenticate-tournament?token=${this.token}&tournamentId=${this.tournamentId}&skinId=${this.skinId}&deviceInfo=${this.deviceInfo}`,
@ -114,8 +106,11 @@ export default class BEConnector {
}
public async checkGameScoreTicket() {
let totalScore: number = GameManager.instance.score;
let dataEncrypted: string = this.getDataEncrypted({ score: totalScore, ticket: this.getTicketCanBeMinus() });
let totalScore: number = this.gameScore;
let dataEncrypted: string = this.getDataEncrypted({
score: totalScore,
ticket: this.getTicketCanBeMinus(),
});
await fetch(`${this.gameURL}/promotions/check-game-score-ticket/${this.tournamentId}/${this.skinId}?cocos=1`, {
headers: {
@ -129,7 +124,7 @@ export default class BEConnector {
}
public postMessage() {
let totalScore: number = GameManager.instance.score;
let totalScore: number = this.gameScore + this.currentScore;
window.parent.postMessage(
JSON.stringify({
error: false,
@ -141,9 +136,9 @@ export default class BEConnector {
);
}
public postScoreToServer(score: number) {
public postScoreToServer() {
let dataEncrypted: string = this.getDataEncrypted({
Score: score,
Score: this.gameScore,
TournamentId: this.tournamentId,
SkinId: this.skinId,
});
@ -160,13 +155,13 @@ export default class BEConnector {
body: JSON.stringify({ data: dataEncrypted }),
},
).catch((err) => console.log(err));
console.log('send score to server: ' + score);
console.log('send score to server: ' + this.gameScore);
window.parent.postMessage(
JSON.stringify({
error: false,
message: 'Hello World',
score: score + this.currentScore,
score: this.gameScore + this.currentScore,
type: 'game_tournament',
}),
'*',
@ -182,8 +177,9 @@ export default class BEConnector {
}
public getTicketCanBeMinus() {
if (!this.mileStone) return 0;
let mileStone = JSON.parse(this.mileStone);
let currentScore = GameManager.instance.score;
let currentScore = this.gameScore;
let total = this.calculatingTicketToContinue(mileStone, currentScore);
return total;
}

View File

@ -1,9 +1,10 @@
import { _decorator, CCFloat, Collider2D, Component, Contact2DType, Animation } from 'cc';
import { _decorator, CCFloat, Collider2D, Component, Contact2DType, Animation, AudioClip } from 'cc';
import ObjectPool from '../Pool/ObjectPool';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import IPoolable from '../Pool/IPoolable';
import Utilities from '../Utilities';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('BoosterBase')
@ -12,15 +13,18 @@ export class BoosterBase extends Component implements IPoolable {
protected _collider: Collider2D;
@property({ type: Animation, visible: true })
private _animation: Animation;
@property(CCFloat)
protected time: number = 10;
protected onLoad(): void {
this._collider.on(Contact2DType.BEGIN_CONTACT, this.onContactBegin, this);
this._collider.enabled = false;
}
private onContactBegin(self: Collider2D, other: Collider2D) {
this.boosterActive();
this._collider.enabled = false;
EventManger.instance.emit(GameEvent.ObjectRelease, this.node);
ObjectPool.release(this.node);
}
@ -32,5 +36,7 @@ export class BoosterBase extends Component implements IPoolable {
await Utilities.delay(this._animation.defaultClip.duration);
this._collider.enabled = true;
}
onRelease() {}
onRelease() {
this._collider.enabled = false;
}
}

View File

@ -0,0 +1,10 @@
import { Enum } from 'cc';
enum ControllerSide {
Left,
Right,
}
Enum(ControllerSide);
export default ControllerSide;

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "f54090c4-8d37-440f-8fb5-21fb086c47c6",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,5 +1,6 @@
enum GameState {
Init = 'Init',
Ready = 'Ready',
Playing = 'Playing',
GameOver = 'GameOver',
End = 'End',

View File

@ -5,7 +5,11 @@ enum PhysicsGroup {
TRIGGER = 1 << 1,
BALL = 1 << 2,
BALL_THROWING = 1 << 3,
ENEMY = 1 << 4,
BORDER = 1 << 4,
ENEMY = 1 << 5,
FLIPPER = 1 << 6,
}
export default Enum(PhysicsGroup);
Enum(PhysicsGroup);
export default PhysicsGroup;

View File

@ -4,7 +4,7 @@ enum TimeConfig {
DelayGoal = 2,
DelayCannonFire = 0.4,
DelayCannonDone = 0.5,
Tutorial = 10,
Tutorial = 20,
}
export default TimeConfig;

View File

@ -1,12 +1,30 @@
import { _decorator, CCInteger, clamp, Component, lerp, Sprite, Node, tween, Prefab } from 'cc';
import {
_decorator,
CCInteger,
clamp,
Component,
lerp,
Sprite,
Node,
tween,
Prefab,
Tween,
Vec3,
AudioClip,
randomRange,
math,
CCFloat,
clamp01,
ParticleSystem,
} from 'cc';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import ScoreType from '../Enum/ScoreType';
import Utilities from '../Utilities';
import { GameManager } from '../Manager/GameManager';
import BoosterType from '../Enum/BoosterType';
import { SpawnObjectManager } from '../Manager/SpawnObjectManager';
import ObjectPool from '../Pool/ObjectPool';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('CumulativeBar')
@ -17,22 +35,47 @@ export class CumulativeBar extends Component {
private _maxValue = 1000;
@property({ type: Node, visible: true })
private _scoreUI: Node;
@property({ type: Prefab, visible: true })
private _starFxObjectPrefab: Prefab;
@property({ type: Prefab, visible: true })
private _scoreObjectPrefab: Prefab;
private _pools: ObjectPool;
@property({ visible: true })
private _centerOffset: Vec3 = new Vec3();
@property({ type: CCFloat, visible: true })
private _radius: number = 0;
@property({ type: CCFloat, visible: true })
private _minAngle: number = 0;
@property({ type: CCFloat, visible: true })
private _maxAngle: number = 0;
@property({ type: AudioClip, visible: true })
private _soundFx;
@property({ type: AudioClip, visible: true })
private _collectStartSoundFx;
private _starPool: ObjectPool;
private _fxPool: ObjectPool;
private _currentValue = 0;
private _fillValue = 0;
private _active = false;
private _goal = false;
private _timer = 0;
private _multiplier = 1;
private _currentValuePosition = new Vec3();
private _center = new Vec3();
protected onLoad(): void {
this._fillBar.fillRange = 0;
this._pools = new ObjectPool(this._scoreObjectPrefab, 10, false);
this._starPool = new ObjectPool(this._scoreObjectPrefab, 50, true);
this._fxPool = new ObjectPool(this._starFxObjectPrefab, 50, true);
EventManger.instance.on(GameEvent.Score, this.onScore, this);
EventManger.instance.on(GameEvent.BoosterActive, this.onBoosterActive, this);
EventManger.instance.on(GameEvent.BoosterDisable, this.onBoosterDisable, this);
this._center = this._fillBar.node.getWorldPosition();
this._center.add(this._centerOffset);
this.calcPositionOnCircleLine(this._minAngle);
}
protected update(dt: number): void {
@ -40,7 +83,7 @@ export class CumulativeBar extends Component {
this._timer += dt;
if (this._timer >= 0.1) {
this._timer = 0;
this._currentValue -= 0.5;
this._currentValue -= 2;
if (this._currentValue < 0) {
this._currentValue = 0;
@ -51,21 +94,51 @@ export class CumulativeBar extends Component {
if (Math.abs(this._fillValue - this._fillBar.fillRange) >= 0.001) {
this._fillBar.fillRange = lerp(this._fillBar.fillRange, this._fillValue, dt * 3);
const progress = clamp01(this._fillBar.fillRange / -0.5);
const angle = lerp(this._minAngle, this._maxAngle, progress);
this.calcPositionOnCircleLine(angle);
}
}
private async onScore(score: number, points: number, type: ScoreType) {
private async onScore(score: number, points: number, type: ScoreType, position: Vec3) {
switch (type) {
case ScoreType.DestroyObject:
if (!this._active) return;
this._currentValue += points;
break;
const star = this._starPool.get(this.node);
star.setWorldPosition(position);
tween(star)
.to(
1,
{ worldPosition: this._currentValuePosition },
{
onUpdate: (target: Node, ratio: number) => {
target.worldPosition = target.worldPosition.lerp(this._currentValuePosition, ratio);
},
},
)
.call(async () => {
const fx = this._fxPool.get(ParticleSystem, this.node);
fx.node.setWorldPosition(star.worldPosition);
this._starPool.release(star);
SoundManager.instance.playSfx(this._collectStartSoundFx);
await Utilities.waitUntil(() => {
return fx.isStopped;
}, 0.1);
this._fxPool.release(fx);
})
.start();
this._multiplier++;
this._currentValue += points * this._multiplier;
if (this._currentValue > this._maxValue) this._currentValue = this._maxValue;
break;
case ScoreType.Goal:
if (this._currentValue == 0) return;
this._multiplier = 0;
this._goal = true;
await Utilities.delay(1);
let items = Math.round(this._currentValue / 5);
GameManager.instance.addScore(
Math.round(this._currentValue),
ScoreType.Combo,
@ -76,32 +149,55 @@ export class CumulativeBar extends Component {
duration: 1,
},
);
this._currentValue = 0;
this._goal = false;
let items = Math.ceil(this._currentValue / 10);
this.playCollectEffect(items);
this._goal = false;
this._currentValue = 0;
break;
}
this._fillValue = -clamp(this._currentValue / 2 / this._maxValue, 0, 0.5);
}
private async playCollectEffect(items: number) {
const time = items < 10 ? 0.05 : 1.5 / items;
const time = 0.04;
const offset = new Vec3();
while (items > 0) {
const obj = this._pools.get(this.node);
obj.setWorldPosition(this.node.worldPosition);
const obj = this._starPool.get(this._scoreUI);
Vec3.random(offset, 30);
offset.y = 0;
obj.setWorldPosition(this.node.getWorldPosition().add(offset));
tween(obj)
.to(0.3, { worldPosition: this._scoreUI.worldPosition })
.call(() => ObjectPool.release(obj))
.to(randomRange(0.3, 0.4), { worldPosition: this._scoreUI.worldPosition }, { easing: 'sineIn' })
.call(() => this._starPool.release(obj))
.call(() => {
Tween.stopAllByTarget(this._scoreUI);
tween(this._scoreUI)
.set({ scale: Vec3.ONE })
.to(0.1, { scale: new Vec3(1.2, 1.2, 1.2) })
.set({ scale: Vec3.ONE })
.start();
})
.start();
items--;
SoundManager.instance.playSfx(this._soundFx, 0.5);
await Utilities.delay(time);
}
}
private calcPositionOnCircleLine(angle: number) {
const rad = math.toRadian(angle);
this._currentValuePosition.x = this._center.x + this._radius * -Math.cos(rad);
this._currentValuePosition.y = this._center.y + this._radius * Math.sin(rad);
}
private onBoosterActive(type: BoosterType) {
if (type == BoosterType.CumulativeBar) this._active = true;
}
private onBoosterDisable(type: BoosterType) {
if (type == BoosterType.CumulativeBar) this._active = false;
if (type == BoosterType.CumulativeBar) {
this._multiplier = 0;
this._active = false;
}
}
}

View File

@ -45,6 +45,7 @@ export class ScoreObject extends Component implements IPoolable {
protected onLoad(): void {
this._collider.on(Contact2DType.BEGIN_CONTACT, this.onContactBegin, this);
this._originColor = this._sprite.color.clone();
this._collider.enabled = false;
}
protected update(dt: number): void {
@ -94,6 +95,7 @@ export class ScoreObject extends Component implements IPoolable {
public onRelease() {
this._isHit = false;
this._collider.enabled = false;
this.node.angle = 0;
this.node.setScale(Vec3.ONE);
this._sprite.color = this._originColor;

View File

@ -1,5 +1,6 @@
import { _decorator, Collider2D, Component, Contact2DType, Node, Animation, RigidBody2D } from 'cc';
import { _decorator, Collider2D, Component, Contact2DType, Node, Animation, RigidBody2D, AudioClip } from 'cc';
import { CameraController } from './CameraController';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('SlingShot')
@ -9,6 +10,9 @@ export default class SlingShot extends Component {
@property({ type: Collider2D, visible: true })
private _collider: Collider2D;
@property({ type: AudioClip, visible: true })
private _soundFx: AudioClip;
protected onLoad(): void {
this._collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
}
@ -16,6 +20,9 @@ export default class SlingShot extends Component {
onBeginContact(self: Collider2D, other: Collider2D) {
this._animation.play();
const velocity = other.getComponent(RigidBody2D).linearVelocity.length();
if (velocity >= 40) CameraController.instance.shake(0.08);
SoundManager.instance.playSfx(this._soundFx);
if (velocity >= 40) {
CameraController.instance.shake(0.08);
}
}
}

View File

@ -1,8 +1,8 @@
import { Node } from 'cc';
import { Node, Vec3 } from 'cc';
import GameState from '../Enum/GameState';
import ScoreType from '../Enum/ScoreType';
import BoosterType from '../Enum/BoosterType';
import { ControllerSide } from '../GamePlay/Flipper';
import ControllerSide from '../Enum/ControllerSide';
enum GameEvent {
Score,
@ -18,7 +18,7 @@ enum GameEvent {
}
export interface GameEventCallbackMap {
[GameEvent.Score]: (score: number, points?: number, type?: ScoreType) => void;
[GameEvent.Score]: (score: number, points?: number, type?: ScoreType, position?: Vec3) => void;
[GameEvent.BallOut]: () => void;
[GameEvent.MultiBall]: (active: boolean) => void;
[GameEvent.TimeUpdate]: (time: number) => void;
@ -31,7 +31,7 @@ export interface GameEventCallbackMap {
}
export interface GameEventArgMap {
[GameEvent.Score]: [number, number, ScoreType];
[GameEvent.Score]: [number, number, ScoreType, Vec3];
[GameEvent.BallOut]: null;
[GameEvent.MultiBall]: boolean;
[GameEvent.TimeUpdate]: number;

View File

@ -9,6 +9,7 @@ import {
Vec2,
Animation,
Vec3,
AudioClip,
} from 'cc';
import Utilities from '../Utilities';
import { Ball } from './Ball';
@ -16,6 +17,7 @@ import TimeConfig from '../Enum/TimeConfig';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import { CameraController } from '../Environments/CameraController';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('Cannon')
@ -26,6 +28,10 @@ export class Cannon extends Component {
private _animation: Animation;
@property({ type: CCInteger, visible: true })
private _force = 30;
@property({ type: AudioClip, visible: true })
private _soundFx: AudioClip;
@property({ type: EventHandler, visible: true })
private onDone: EventHandler[] = [];
@ -34,7 +40,7 @@ export class Cannon extends Component {
EventManger.instance.on(GameEvent.BallOut, this.onBallOut, this);
}
private async onBeginContact(seft: Collider2D, other: Collider2D) {
private async onBeginContact(self: Collider2D, other: Collider2D) {
const ball = other.getComponent(Ball);
this._collider.enabled = false;
if (ball) {
@ -45,6 +51,7 @@ export class Cannon extends Component {
this._animation.play();
ball.setActiveRigi(true);
ball.throwBall(new Vec2(0, this._force));
SoundManager.instance.playSfx(this._soundFx);
await Utilities.delay(TimeConfig.DelayCannonDone);
tween(this._collider.node).to(0.5, { scale: Vec3.ZERO }, { easing: 'backIn' }).start();
EventHandler.emitEvents(this.onDone, ball);

View File

@ -11,11 +11,14 @@ import {
Collider2D,
Sprite,
Contact2DType,
AudioClip,
Tween,
} from 'cc';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import ScoreType from '../Enum/ScoreType';
import GameState from '../Enum/GameState';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('Enemy')
@ -38,6 +41,10 @@ export class Enemy extends Component {
private _patrolCurve: geometry.AnimationCurve = new geometry.AnimationCurve();
@property({ type: CCFloat, visible: true })
private _multiplierCurve = 100;
@property({ type: AudioClip, visible: true })
private _hitSound: AudioClip;
private x: number;
private y: number;
private _distance: number;
@ -100,8 +107,10 @@ export class Enemy extends Component {
}
private onBeginContact(self: Collider2D, other: Collider2D) {
this._sprite.node.setScale(Vec3.ONE);
SoundManager.instance.playSfx(this._hitSound);
Tween.stopAllByTarget(this._sprite.node.scale);
tween(this._sprite.node.scale)
.set(Vec3.ONE)
.to(0.1, new Vec3(1.2, 1.2), { easing: 'backInOut' })
.to(0.5, Vec3.ONE, { easing: 'backOut' })
.start();
@ -130,10 +139,16 @@ export class Enemy extends Component {
switch (state) {
case GameState.Init:
break;
case GameState.Ready:
break;
case GameState.Playing:
this.init();
break;
case GameState.GameOver:
this.init();
break;
case GameState.Relive:
break;
case GameState.End:
break;
}
}

View File

@ -5,23 +5,25 @@ import {
Collider2D,
Component,
Contact2DType,
Node,
ParticleSystem,
Prefab,
Animation,
} from 'cc';
import { GameManager } from '../Manager/GameManager';
import Utilities from '../Utilities';
import ObjectPool from '../Pool/ObjectPool';
import { Ball } from './Ball';
import { SoundManager } from '../Manager/SoundManager';
import TimeConfig from '../Enum/TimeConfig';
import { CameraController } from '../Environments/CameraController';
import TimeConfig from '../Enum/TimeConfig';
const { ccclass, property } = _decorator;
@ccclass('Goal')
export class Goal extends Component {
@property({ type: Collider2D, visible: true })
private _collider: Collider2D;
@property({ type: Animation, visible: true })
private _animation: Animation;
@property({ type: CCInteger, visible: true })
private _score: number;
@property({ type: Prefab, visible: true })
@ -41,7 +43,7 @@ export class Goal extends Component {
if (ball) {
GameManager.instance.goal(this._score, ball.node.getWorldPosition());
ball.setActiveRigi(false);
const fx = this._goalFxPool.get(this.node, ParticleSystem);
const fx = this._goalFxPool.get(ParticleSystem, this.node);
const pos = ball.node.getWorldPosition();
pos.z = 10;
fx.node.setWorldPosition(pos);
@ -49,8 +51,15 @@ export class Goal extends Component {
SoundManager.instance.playSfx(this._goalSound);
ObjectPool.release(ball.node);
CameraController.instance.shake(0.5);
this.playAnimationGoal();
await Utilities.waitUntil(() => fx.isStopped);
this._goalFxPool.release(fx.node);
this._goalFxPool.release(fx);
}
}
public async playAnimationGoal() {
this._animation.play(this._animation.clips[1].name);
await Utilities.delay(TimeConfig.DelayGoal);
this._animation.play();
}
}

View File

@ -1,10 +1,11 @@
import { _decorator, Collider2D, Component, Contact2DType, Vec2, Node, ParticleSystem, Prefab } from 'cc';
import { _decorator, Collider2D, Component, Contact2DType, Vec2, Node, ParticleSystem, Prefab, AudioClip } from 'cc';
import { GameManager } from '../Manager/GameManager';
import Utilities from '../Utilities';
import { Ball } from './Ball';
import TimeConfig from '../Enum/TimeConfig';
import ObjectPool from '../Pool/ObjectPool';
import { CameraController } from '../Environments/CameraController';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('MultiBall')
@ -18,6 +19,9 @@ export class MultiBall extends Component {
@property({ type: Prefab, visible: true })
private _fx: Prefab;
@property({ type: AudioClip, visible: true })
private _soundFX: AudioClip;
private _originBall: Ball;
private _trigged = false;
private _fxPool: ObjectPool;
@ -32,16 +36,13 @@ export class MultiBall extends Component {
CameraController.instance.shake(0.2);
this._originBall.setActiveRigi(true);
const ball1 = this._originBall;
const ball2 = GameManager.instance.spawnBall(false);
const ball2 = GameManager.instance.spawnBall(false, false);
ball1.node.setWorldPosition(this._portRight.worldPosition);
ball1.addForce(new Vec2(20, 0));
ball2.node.setWorldPosition(this._portLeft.worldPosition);
ball2.addForce(new Vec2(-20, 0));
ball1.playMultiBallEffect();
ball2.playMultiBallEffect();
this._trigged = false;
}
}
@ -52,11 +53,12 @@ export class MultiBall extends Component {
this._originBall = otherCollider.getComponent(Ball);
this._originBall.setActiveRigi(false);
this._trigged = true;
const fx = this._fxPool.get(this.node, ParticleSystem);
const fx = this._fxPool.get(ParticleSystem, this.node);
fx.node.setWorldPosition(this.node.worldPosition);
SoundManager.instance.playSfx(this._soundFX);
await Utilities.delay(TimeConfig.DelayMultiBall);
this._collider.enabled = true;
await Utilities.waitUntil(() => fx.isStopped);
this._fxPool.release(fx.node);
this._fxPool.release(fx);
}
}

View File

@ -37,10 +37,12 @@ export class Ball extends Component implements IPoolable {
private _maxSpeed: number;
@property({ type: RigidBody2D, visible: true })
private _rigidBody: RigidBody2D;
@property({ type: Sprite, visible: true })
private _sprite: Sprite;
@property({ type: Sprite, visible: true })
private _spriteShadow: Sprite;
@property({ type: Animation, visible: true })
private _animation: Animation;
@property({ type: ParticleSystem, visible: true })
@ -51,10 +53,12 @@ export class Ball extends Component implements IPoolable {
private _boosterParticle: ParticleSystem;
@property({ type: CircleCollider2D, visible: true })
private _collider: CircleCollider2D;
@property({ type: AudioClip, visible: true })
private _hitSound: AudioClip;
@property({ type: AudioClip, visible: true })
private _ballThrowSound: AudioClip;
private _hitFlipperSound: AudioClip;
@property({ type: geometry.AnimationCurve, visible: true })
private _jumpCurve: geometry.AnimationCurve = new geometry.AnimationCurve();
@ -131,11 +135,13 @@ export class Ball extends Component implements IPoolable {
const point = selfCollider.node.getWorldPosition().add(dir);
hitPoint = new Vec2(point.x, point.y);
}
const hitFx = this._impactPool.get(this.node.parent, ParticleSystem);
const hitFx = this._impactPool.get(ParticleSystem, this.node.parent);
hitFx.node.setWorldPosition(new Vec3(hitPoint.x, hitPoint.y, 10));
SoundManager.instance.playSfx(this._hitSound);
SoundManager.instance.playSfx(
otherCollider.group == PhysicsGroup.FLIPPER ? this._hitFlipperSound : this._hitSound,
);
await Utilities.waitUntil(() => hitFx.isStopped, 0.1);
this._impactPool.release(hitFx.node);
this._impactPool.release(hitFx);
}
}
@ -162,7 +168,6 @@ export class Ball extends Component implements IPoolable {
}
public throwBall(force: Vec2) {
SoundManager.instance.playSfx(this._ballThrowSound);
this._collider.group = PhysicsGroup.BALL_THROWING;
this._rigidBody.group = PhysicsGroup.BALL_THROWING;
this._rigidBody.applyAngularImpulse(-5 * force.x || 2, true);

View File

@ -7,23 +7,17 @@ import {
Input,
EventKeyboard,
KeyCode,
Enum,
Animation,
Vec3,
AnimationState,
AudioClip,
} from 'cc';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import TimeConfig from '../Enum/TimeConfig';
import { SoundManager } from '../Manager/SoundManager';
import ControllerSide from '../Enum/ControllerSide';
const { ccclass, property } = _decorator;
export enum ControllerSide {
Left,
Right,
}
Enum(ControllerSide);
@ccclass('Flipper')
export class Flipper extends Component {
@property({ type: Animation, visible: true })
@ -37,6 +31,9 @@ export class Flipper extends Component {
@property({ visible: true, type: ControllerSide })
private side = ControllerSide.Left;
@property({ type: AudioClip, visible: true })
private _activeSound: AudioClip;
private _timer = 0;
private _isAnimationPlaying;
@ -119,6 +116,7 @@ export class Flipper extends Component {
//#endregion
private activeFlipper(): void {
SoundManager.instance.playSfx(this._activeSound, 0.5);
this._hingeJoint.motorSpeed = this._motorSpeedActive;
}
private deActiveFlipper(): void {

View File

@ -1,6 +1,5 @@
import {
_decorator,
Component,
Node,
Prefab,
Vec2,
@ -9,7 +8,6 @@ import {
CCInteger,
AudioClip,
Quat,
game,
EPhysics2DDrawFlags,
PhysicsSystem2D,
} from 'cc';
@ -40,7 +38,6 @@ window.addEventListener('message', (data) => {
}
});
ccclass('Booster');
class Booster {
public type: BoosterType;
public time: number;
@ -67,17 +64,23 @@ export class GameManager extends Singleton<GameManager>() {
@property({ visible: true })
private _ballSpawnPosition: Vec3;
@property({ type: CCInteger, visible: true })
private readonly _timePlay = 3;
private readonly _timePlay = 120;
@property({ type: AudioClip, visible: true })
private _boosterActiveSound: AudioClip;
@property({ type: AudioClip, visible: true })
private _startSound: AudioClip;
@property({ type: AudioClip, visible: true })
private _ballOutSound: AudioClip;
@property({ type: AudioClip, visible: true })
private _backgroundMusic: AudioClip;
@property({ type: AudioClip, visible: true })
private _gameOverMusic: AudioClip;
private _ballPool: ObjectPool;
private _FloatingScorePool: ObjectPool;
private _gameState: GameState;
private _timer: number;
@property({ type: Booster, visible: true, readonly: true })
private _boostersActive: Booster[] = [];
private _score = 0;
@ -89,6 +92,14 @@ export class GameManager extends Singleton<GameManager>() {
return this._score;
}
public get gameTime() {
return this._timePlay;
}
public get gameState() {
return this._gameState;
}
protected onLoad(): void {
super.onLoad();
this._ballPool = new ObjectPool(this._ballPrefab, 10, true, Ball);
@ -98,15 +109,11 @@ export class GameManager extends Singleton<GameManager>() {
protected start(): void {
this.changeGameState(GameState.Init);
BEConnector.instance.getInfo();
}
protected update(dt: number): void {
if (this._gameState != GameState.Playing) return;
this._timer -= dt;
if (this._timer <= 0) {
this._timer = 0;
this.gameOver();
}
for (let i = 0; i < this._boostersActive.length; i++) {
const booster = this._boostersActive[i];
@ -116,8 +123,6 @@ export class GameManager extends Singleton<GameManager>() {
EventManger.instance.emit(GameEvent.BoosterDisable, booster.type);
}
}
EventManger.instance.emit(GameEvent.TimeUpdate, this._timer);
}
private async changeGameState(state: GameState) {
@ -128,14 +133,15 @@ export class GameManager extends Singleton<GameManager>() {
case GameState.Init:
BEConnector.instance.authenticate();
break;
case GameState.Ready:
break;
case GameState.Playing:
this.countTime();
BEConnector.instance.ticketMinus('auth');
break;
case GameState.GameOver:
break;
case GameState.End:
await Utilities.delay(3);
BEConnector.instance.postScoreToServer(this._score);
break;
case GameState.Relive:
BEConnector.instance.ticketMinus('revive');
@ -152,18 +158,30 @@ export class GameManager extends Singleton<GameManager>() {
opts: { scaleMin: number; scaleMax: number; duration: number },
) {
this._score += score;
const floatingScore = this._FloatingScorePool.get(this._floatingTextContainer, FloatingText);
const floatingScore = this._FloatingScorePool.get(FloatingText, this._floatingTextContainer);
floatingScore.show(`+${score}`, position, score >= 100 ? opts.scaleMax : opts.scaleMin, opts.duration);
EventManger.instance.emit(GameEvent.Score, [this._score, score, type]);
EventManger.instance.emit(GameEvent.Score, [this._score, score, type, position]);
}
private async countTime() {
while (this.gameState == GameState.Playing) {
this._timer--;
if (this._timer <= 0) {
this._timer = 0;
this.gameOver();
}
EventManger.instance.emit(GameEvent.TimeUpdate, this._timer);
await Utilities.delay(1);
}
}
private setCurrentBallInGame(value: number) {
this._currentBallInGame += value;
if (this._currentBallInGame >= 2) {
if (!this._isMultiBall) {
this._isMultiBall = true;
EventManger.instance.emit(GameEvent.MultiBall, true);
}
this._isMultiBall = true;
EventManger.instance.emit(GameEvent.MultiBall, true);
this._ballPool.actives.forEach((ball) => ball.getComponent(Ball).playMultiBallEffect());
}
if (this._currentBallInGame <= 0) {
@ -174,11 +192,11 @@ export class GameManager extends Singleton<GameManager>() {
}
}
public spawnBall(throwBall: boolean): Ball {
public spawnBall(throwBall: boolean, playStartSound: boolean = true): Ball {
if (this._gameState != GameState.Playing) return;
SoundManager.instance.playSfx(this._startSound);
if (playStartSound) SoundManager.instance.playSfx(this._startSound);
this.setCurrentBallInGame(1);
const ball = this._ballPool.get(this._ballHolder, Ball);
const ball = this._ballPool.get(Ball, this._ballHolder);
ball.init(this._boostersActive.length > 0);
ball.node.setRotation(Quat.IDENTITY);
ball.node.setPosition(this._ballSpawnPosition);
@ -196,6 +214,7 @@ export class GameManager extends Singleton<GameManager>() {
this.setCurrentBallInGame(-1);
if (this._currentBallInGame <= 0) {
EventManger.instance.emit(GameEvent.BallOut, null);
SoundManager.instance.playSfx(this._ballOutSound);
for (let i = 0; i < this._boostersActive.length; i++) {
const booster = this._boostersActive[i];
EventManger.instance.emit(GameEvent.BoosterDisable, booster.type);
@ -231,32 +250,44 @@ export class GameManager extends Singleton<GameManager>() {
}
if (bonusTime) {
this.addTime(bonusTime);
const floatingScore = this._FloatingScorePool.get(this._floatingTextContainer, FloatingText);
const floatingScore = this._FloatingScorePool.get(FloatingText, this._floatingTextContainer);
floatingScore.show(`+${bonusTime}`, position, 1.5);
}
}
public addTime(time: number) {
this._timer += time;
EventManger.instance.emit(GameEvent.TimeUpdate, this._timer);
}
public gameOver() {
this._ballPool.releaseAll();
for (let i = 0; i < this._boostersActive.length; i++) {
const booster = this._boostersActive[i];
EventManger.instance.emit(GameEvent.BoosterDisable, booster.type);
}
this._boostersActive = [];
SoundManager.instance.playBGM(this._gameOverMusic);
BEConnector.instance.gameScore = this.score;
if (this.isReplayed) {
this.changeGameState(GameState.End);
return;
}
this.isReplayed = true;
this._ballPool.releaseAll();
this.changeGameState(GameState.GameOver);
}
public Ready() {
SoundManager.instance.playBGM(this._backgroundMusic, 1);
this.changeGameState(GameState.Ready);
}
public async play() {
this._timer = this._timePlay + TimeConfig.DelayPLay;
this._score = 0;
this._currentBallInGame = 0;
this._isMultiBall = false;
SoundManager.instance.playBGM(this._backgroundMusic, 0.5);
this.changeGameState(GameState.Playing);
await Utilities.delay(TimeConfig.DelayPLay);
this.spawnBall(true);
@ -264,16 +295,16 @@ export class GameManager extends Singleton<GameManager>() {
public async gameRelive() {
this.changeGameState(GameState.Relive);
this._timer = 60 + TimeConfig.DelayPLay;
this._timer = this._timePlay + TimeConfig.DelayPLay;
this._currentBallInGame = 0;
this._isMultiBall = false;
SoundManager.instance.playBGM(this._backgroundMusic, 0.5);
SoundManager.instance.playBGM(this._backgroundMusic, 1);
this.changeGameState(GameState.Playing);
await Utilities.delay(TimeConfig.DelayPLay);
this.spawnBall(true);
}
public ActiveBooster(type: BoosterType, time: number) {
public async ActiveBooster(type: BoosterType, time: number) {
//check booster already active
for (let i = 0; i < this._boostersActive.length; i++) {
const booster = this._boostersActive[i];
@ -281,5 +312,6 @@ export class GameManager extends Singleton<GameManager>() {
}
this._boostersActive.push(new Booster(type, time));
EventManger.instance.emit(GameEvent.BoosterActive, type);
SoundManager.instance.playSfx(this._boosterActiveSound);
}
}

View File

@ -23,9 +23,15 @@ class SoundSource {
} else {
this.source.volume = this.volume;
}
this._mute = value;
}
public play() {
if (this.source.playing) {
this.source.playOneShot(this.source.clip, this.mute ? 0 : this.volume);
return;
}
this.source.play();
}
@ -39,19 +45,19 @@ export class SoundManager extends Singleton<SoundManager>('SoundManager') {
private _audioSourcesSfx: { [key: string]: SoundSource } = {};
private _audioSourceBgm: SoundSource;
private isMute = false;
private _isMute = false;
public toggleMute(): boolean {
this.isMute = !this.isMute;
this.setMute(this.isMute);
return this.isMute;
this._isMute = !this._isMute;
this.setMute(this._isMute);
return this._isMute;
}
public setMute(mute: boolean) {
this.isMute = mute;
this._audioSourceBgm.mute = this.isMute;
this._isMute = mute;
this._audioSourceBgm.mute = this._isMute;
for (const key in this._audioSourcesSfx) {
this._audioSourcesSfx[key].mute = this.isMute;
this._audioSourcesSfx[key].mute = this._isMute;
}
}
@ -65,7 +71,7 @@ export class SoundManager extends Singleton<SoundManager>('SoundManager') {
this._audioSourceBgm.volume = volume;
this._audioSourceBgm.source.clip = audio;
this._audioSourceBgm.source.loop = loop;
this._audioSourceBgm.mute = this.isMute;
this._audioSourceBgm.mute = this._isMute;
this._audioSourceBgm.play();
}
@ -76,10 +82,6 @@ export class SoundManager extends Singleton<SoundManager>('SoundManager') {
soundSource.volume = volume;
soundSource.source.loop = loop;
if (loop) return;
if (soundSource.source.playing) {
soundSource.source.playOneShot(audioClip, this.isMute ? 0 : volume);
return;
}
soundSource.play();
return;
}
@ -90,7 +92,7 @@ export class SoundManager extends Singleton<SoundManager>('SoundManager') {
soundSource.source.clip = audioClip;
soundSource.source.loop = loop;
soundSource.source.volume = volume;
soundSource.mute = this.isMute;
soundSource.mute = this._isMute;
this._audioSourcesSfx[audioClip.uuid] = soundSource;
soundSource.play();
}

View File

@ -160,6 +160,8 @@ export class SpawnObjectManager extends Component {
switch (state) {
case GameState.Init:
break;
case GameState.Ready:
break;
case GameState.Playing:
this._playing = true;
if (this._isReplay) return;

View File

@ -1,6 +1,5 @@
import { Component, Node, Prefab, director, instantiate } from 'cc';
import IPoolable from './IPoolable';
import { error } from 'cc';
export default class ObjectPool {
private _inactive: Node[] = [];
@ -9,7 +8,15 @@ export default class ObjectPool {
private _expandable;
private _poolHandlerComp: new () => any;
private get all() {
public get actives() {
return [...this._actives];
}
public get inActives() {
return [...this._inactive];
}
public get all() {
return [...this._actives, ...this._inactive];
}
@ -50,14 +57,24 @@ export default class ObjectPool {
//#endregion
public get(parent?: Node): Node;
public get<T extends Component>(parent?: Node, classConstructor?: new () => T): T;
public get<T extends Component>(parent?: Node, classConstructor?: new () => T): T | Node {
public get<T extends Component>(classConstructor: new () => T): T;
public get<T extends Component>(classConstructor: new () => T, parent: Node): T;
public get<T extends Component>(a?: (new () => T) | Node, b?: Node): T | Node {
if (!!!this._prefab) {
console.error('prefab cant be null or undefine');
return;
}
let parent: Node;
let classConstructor: new () => T;
if (a instanceof Node) {
parent = a || director.getScene();
} else {
parent = b || director.getScene();
classConstructor = a;
}
let obj: Node = null;
let p = parent || director.getScene();
if (this._inactive.length > 0) {
// Pop the last object in pool
obj = this._inactive.pop();
@ -70,14 +87,13 @@ export default class ObjectPool {
obj.removeFromParent();
}
obj.setParent(p);
obj.setParent(parent);
this._actives.push(obj);
// Invoke pool handler
const handler = this._poolHandlerComp ? obj.getComponent(this._poolHandlerComp) : null;
if (handler) {
(handler as unknown as IPoolable)?.onGet();
}
if (classConstructor) {
return handler == classConstructor ? handler : obj.getComponent(classConstructor);
}

View File

@ -1,12 +1,12 @@
import { Component, Node } from 'cc';
export default function Singleton<T>(component?: string) {
export default function Singleton<T>(componentName?: string) {
class Singleton extends Component {
//singleton
private static _instance: T = null;
public static get instance(): T {
if (component && !Singleton._instance) {
Singleton._instance = new Node(component).addComponent(component) as T;
if (componentName && !Singleton._instance) {
Singleton._instance = new Node(componentName).addComponent(componentName) as T;
}
return Singleton._instance;
}

View File

@ -0,0 +1,17 @@
import { _decorator, Button, Component, Node } from 'cc';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('ButonSound')
export class ButonSound extends Component {
@property({ type: Node, visible: true })
private _unMute: Node;
@property({ type: Node, visible: true })
private _mute: Node;
public clickBtn() {
const mute = SoundManager.instance.toggleMute();
this._mute.active = mute;
this._unMute.active = !mute;
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "fe6191ed-117d-4e42-aee8-78008aac035d",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,23 +1,98 @@
import { _decorator, Component, Label, Node } from 'cc';
import { _decorator, AudioClip, Component, Label, Node, Prefab, randomRange, Tween, tween, Vec3 } from 'cc';
import BEConnector from '../API/BEConnector';
import { GameManager } from '../Manager/GameManager';
import ObjectPool from '../Pool/ObjectPool';
import Utilities from '../Utilities';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import GameState from '../Enum/GameState';
import { SoundManager } from '../Manager/SoundManager';
const { ccclass, property } = _decorator;
@ccclass('GameOverPanel')
export class GameOverPanel extends Component {
@property(Label) private topScore: Label = null;
@property(Label) private yourScore: Label = null;
@property(Node) private confirmPanel: Node = null;
@property({ type: Label, visible: true })
private _ticketMinus: Label;
@property({ type: Node, visible: true })
private _buyTicketBtn: Node;
@property({ type: Node, visible: true })
private _quitBtn: Node;
@property({ type: Node, visible: true })
private _scoreUI: Node;
@property({ type: Prefab, visible: true })
private _scorePrefab: Prefab;
@property({ type: AudioClip, visible: true })
private _soundCollectCoinFx: AudioClip;
private _pool: ObjectPool;
private _active = false;
private _clicked = false;
private _end = false;
protected onLoad(): void {
this._pool = new ObjectPool(this._scorePrefab, 100, true);
EventManger.instance.on(GameEvent.GameStateChange, this.onGameStateChange, this);
}
protected onEnable(): void {
let currentScore = BEConnector.instance.currentScore + GameManager.instance.score;
this._ticketMinus.string = '-' + BEConnector.instance.getTicketCanBeMinus().toString();
this.topScore.string = BEConnector.instance.maxScore.toString();
this.yourScore.string = currentScore.toString();
this.yourScore.string = BEConnector.instance.currentScore.toString();
const gameScore = GameManager.instance.score;
const currentScore = BEConnector.instance.currentScore;
this.playCollectEffect(gameScore, currentScore);
this.scheduleOnce(this.endGame, 60);
this._active = true;
}
private async onGameStateChange(state: GameState) {
switch (state) {
case GameState.Init:
break;
case GameState.Ready:
break;
case GameState.Playing:
break;
case GameState.GameOver:
break;
case GameState.End:
this._buyTicketBtn.active = false;
this._quitBtn.active = false;
this._end = true;
if (this._active) {
await Utilities.delay(1);
BEConnector.instance.postScoreToServer();
}
break;
case GameState.Relive:
break;
}
}
onClickYesButton() {
this.confirmPanel.active = true;
if (this._clicked) return;
this._clicked = true;
if (BEConnector.instance.canRelive()) {
BEConnector.instance
.checkGameScoreTicket()
.then(() => {
this._clicked = false;
GameManager.instance.gameRelive();
})
.catch(() => {
this._clicked = false;
GameManager.instance.gameOver();
});
} else {
this._clicked = false;
BEConnector.instance.postMessage();
}
}
onClickNoButton() {
@ -25,10 +100,56 @@ export class GameOverPanel extends Component {
}
protected onDisable(): void {
this._active = false;
this.unschedule(this.endGame);
}
private endGame() {
GameManager.instance.gameOver();
}
private async playCollectEffect(gameScore: number, currentScore: number) {
if (!this._active) {
let x = 10;
let items = Math.ceil(gameScore / x);
if (items >= 50) {
items = 50;
x = Math.round(gameScore / items);
}
const time = 0.04;
const totalScore = gameScore + currentScore;
let score = currentScore;
const target = this.yourScore.node.getWorldPosition();
for (let i = 0; i < items; i++) {
score += x;
score = score > totalScore ? totalScore : score;
const obj = this._pool.get(this._scoreUI);
obj.setWorldPosition(this._scoreUI.worldPosition);
tween(obj)
.to(randomRange(0.2, 0.3), { worldPosition: target }, { easing: 'sineIn' })
.call(() => this._pool.release(obj))
.call(() => {
Tween.stopAllByTarget(this.yourScore);
tween(this.yourScore.node)
.to(0.1, { scale: new Vec3(1.3, 1.3, 1.3) })
.call(async () => {
if (i == items - 1) {
this.yourScore.string = totalScore.toString();
if (this._end) {
await Utilities.delay(1);
BEConnector.instance.postScoreToServer();
}
} else {
this.yourScore.string = score.toString();
}
})
.set({ scale: Vec3.ONE })
.start();
})
.start();
SoundManager.instance.playSfx(this._soundCollectCoinFx);
await Utilities.delay(time);
}
}
}
}

View File

@ -0,0 +1,23 @@
import { _decorator, Color, Component, Label, Node, Sprite } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('LeaderBoardItem')
export class LeaderBoardItem extends Component {
@property({ type: Sprite, visible: true })
private _bg: Sprite;
@property({ type: Label, visible: true })
private _scoreText: Label;
@property({ type: Label, visible: true })
private _topText: Label;
@property({ visible: true })
private _highLightColor: Color = new Color();
public init(top: number, score: number, isPlayer: boolean) {
if (isPlayer) {
this._bg.color = this._highLightColor;
}
this._topText.string = top.toString();
this._scoreText.string = score.toString();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "552d1839-40da-4e78-8054-9b75abd49e5c",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -0,0 +1,15 @@
import { _decorator, Animation, Component, Node } from 'cc';
import Utilities from '../Utilities';
const { ccclass, property } = _decorator;
@ccclass('StartScreenController')
export class StartScreenController extends Component {
@property({ type: Animation, visible: true })
private _animation: Animation;
protected async start() {
this._animation.play();
await Utilities.waitUntil(() => !this._animation.getState(this._animation.defaultClip.name).isPlaying);
this._animation.play(this._animation.clips[1].name);
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "5a60366c-0615-4d08-a867-59e4b4fa3ac6",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,7 +1,7 @@
import { _decorator, Component, Input, Node } from 'cc';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import { ControllerSide } from '../GamePlay/Flipper';
import ControllerSide from '../Enum/ControllerSide';
const { ccclass, property } = _decorator;
@ccclass('TouchController')

View File

@ -1,7 +1,23 @@
import { _decorator, Component, EventKeyboard, EventTouch, input, Input, KeyCode, Node, Tween, tween, Vec3 } from 'cc';
import {
_decorator,
Component,
EventKeyboard,
EventTouch,
input,
Input,
KeyCode,
Node,
ParticleSystem,
Tween,
tween,
Vec3,
} from 'cc';
import { GameManager } from '../Manager/GameManager';
import TimeConfig from '../Enum/TimeConfig';
import Utilities from '../Utilities';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import GameState from '../Enum/GameState';
const { ccclass, property } = _decorator;
@ccclass('TutorialController')
@ -11,32 +27,28 @@ export class TutorialController extends Component {
@property({ type: Node, visible: true })
private _tapR: Node;
@property({ type: ParticleSystem, visible: true })
private _tapLEffect: ParticleSystem;
@property({ type: ParticleSystem, visible: true })
private _tapREffect: ParticleSystem;
private _timer = 0;
private _showed = false;
private _canShow = true;
private _playing = false;
protected onLoad(): void {
this.node.on(Input.EventType.TOUCH_START, this.onTouchStart, this);
input.on(Input.EventType.KEY_UP, this.onKeyInputUpStart, this);
EventManger.instance.on(GameEvent.GameStateChange, this.onGameStateChange, this);
}
protected async start() {
tween(this._tapL)
.by(0.5, { position: new Vec3(0, 50), scale: new Vec3(-0.1, -0.1) }, { easing: 'quintOut' })
.by(0.5, { position: new Vec3(0, -50), scale: new Vec3(0.1, 0.1) }, { easing: 'sineOut' })
.union()
.repeatForever()
.start();
await Utilities.delay(0.5);
tween(this._tapR)
.by(0.5, { position: new Vec3(0, 50), scale: new Vec3(-0.1, -0.1) }, { easing: 'quintOut' })
.by(0.5, { position: new Vec3(0, -50), scale: new Vec3(0.1, 0.1) }, { easing: 'sineOut' })
.union()
.repeatForever()
.start();
protected start() {
this.playTutorial();
}
protected update(dt: number): void {
if (!this._playing) return;
this._timer += dt;
if (!this._showed && this._timer > TimeConfig.Tutorial) {
this._showed = true;
@ -44,12 +56,51 @@ export class TutorialController extends Component {
}
}
private playTutorial() {
this._tapL.active = true;
this._tapR.active = true;
private onGameStateChange(state: GameState) {
switch (state) {
case GameState.Playing:
this._playing = true;
break;
case GameState.GameOver:
case GameState.End:
this._playing = false;
this._canShow = false;
break;
default:
this._canShow = true;
break;
}
}
private async playTutorial() {
if (this._canShow) {
this._tapL.active = true;
this._tapR.active = true;
tween(this._tapL)
.call(() => this._tapLEffect.clear())
.by(0.5, { position: new Vec3(0, 50), scale: new Vec3(-0.1, -0.1) }, { easing: 'quintOut' })
.by(0.5, { position: new Vec3(0, -50), scale: new Vec3(0.1, 0.1) }, { easing: 'sineOut' })
.call(() => this._tapLEffect.play())
.union()
.repeatForever()
.start();
await Utilities.delay(0.5);
tween(this._tapR)
.call(() => this._tapREffect.clear())
.by(0.5, { position: new Vec3(0, 50), scale: new Vec3(-0.1, -0.1) }, { easing: 'quintOut' })
.by(0.5, { position: new Vec3(0, -50), scale: new Vec3(0.1, 0.1) }, { easing: 'sineOut' })
.call(() => this._tapREffect.play())
.union()
.repeatForever()
.start();
}
}
private stopTutorial() {
Tween.stopAllByTarget(this._tapL);
Tween.stopAllByTarget(this._tapR);
this._timer = 0;
this._showed = false;
this._tapL.active = false;

View File

@ -1,10 +1,11 @@
import { _decorator, Component, Label, Node, ParticleSystem, Tween, tween, Vec3 } from 'cc';
import { _decorator, Color, Component, Label, LabelOutline, Node, ParticleSystem, Tween, tween, Vec3 } from 'cc';
import { EventManger } from '../Manager/EventManger';
import GameEvent from '../Events/GameEvent';
import ScoreType from '../Enum/ScoreType';
import GameState from '../Enum/GameState';
import { GameManager } from '../Manager/GameManager';
import BEConnector from '../API/BEConnector';
import Utilities from '../Utilities';
const { ccclass, property } = _decorator;
@ccclass('UIController')
@ -12,25 +13,21 @@ export class UIController extends Component {
@property({ type: Label, visible: true })
private _scoreLabel: Label;
@property({ type: Label, visible: true })
private _ticketLabel: Label;
@property({ type: Label, visible: true })
private _timeLabel: Label;
@property({ type: Label, visible: true })
private _eventLabel: Label;
@property({ type: Label, visible: true })
private _resultLabel: Label;
@property({ type: Label, visible: true })
private _resultTotalLabel: Label;
@property({ type: ParticleSystem, visible: true })
private _buffFx: ParticleSystem;
@property({ type: Node, visible: true })
private _tutorialPanel: Node;
private _controlPanel: Node;
@property({ type: Node, visible: true })
private _startPanel: Node;
@property({ type: Node, visible: true })
private _overPanel: Node;
@property({ type: Label, visible: true })
private _timeLabe: Label;
@property({ type: Node, visible: true })
private _resultPanel: Node = null;
protected async onLoad() {
EventManger.instance.on(GameEvent.Score, this.onScore, this);
@ -44,21 +41,25 @@ export class UIController extends Component {
}
private async onScore(score: number, points: number, type: ScoreType) {
this._scoreLabel.string = `Score: ${score}`;
this._scoreLabel.string = score.toString();
if (type == ScoreType.Goal) {
this.showEventLabel('GOAL!!!');
}
}
private onBallOut() {
this.showEventLabel('BALL OUT!!!');
this.showEventLabel('BALL OUT!!!', new Color('#ed3a18'), Color.WHITE);
}
private showEventLabel(string: string) {
private showEventLabel(string: string, color?: Color, outLineColor?: Color) {
this._eventLabel.string = string;
this._eventLabel.color = color || new Color('#FFFF00');
this._eventLabel.getComponent(LabelOutline).color = outLineColor || new Color('#FF6600');
Tween.stopAllByTarget(this._eventLabel.node);
this._eventLabel.node.setScale(Vec3.ZERO);
tween(this._eventLabel.node)
.set({ scale: Vec3.ZERO })
.to(0.2, { scale: Vec3.ONE }, { easing: 'backOut' })
.delay(1)
.to(
@ -74,30 +75,38 @@ export class UIController extends Component {
.start();
}
private onGameStateChange(state: GameState) {
private async onGameStateChange(state: GameState) {
switch (state) {
case GameState.Init:
this._startPanel.active = true;
this._ticketLabel.string = BEConnector.instance.numberTicket.toString();
this._scoreLabel.string = '0';
this._timeLabel.string = this.secondsToTime(GameManager.instance.gameTime);
break;
case GameState.Ready:
this._controlPanel.active = true;
this._startPanel.active = false;
break;
case GameState.Playing:
this._scoreLabel.string = 'Score: 0';
this._overPanel.active = false;
this._ticketLabel.string = BEConnector.instance.numberTicket.toString();
break;
case GameState.GameOver:
this.showEventLabel('TIME UP!!!', new Color('#ed3a18'), Color.WHITE);
await Utilities.delay(1.2);
this._buffFx.stop();
this._overPanel.active = true;
this._resultLabel.string = this._scoreLabel.string;
break;
case GameState.End:
this._overPanel.active = false;
this._resultPanel.active = true;
this._resultLabel.string = GameManager.instance.score.toString();
this._resultTotalLabel.string = (
GameManager.instance.score + BEConnector.instance.currentScore
).toString();
this.showEventLabel('TIME UP!!!', new Color('#ed3a18'), Color.WHITE);
await Utilities.delay(1.2);
this._overPanel.active = true;
break;
case GameState.Relive:
this._overPanel.active = false;
this._ticketLabel.string = BEConnector.instance.numberTicket.toString();
break;
}
}
@ -110,7 +119,7 @@ export class UIController extends Component {
public onBoosterActive() {
this._buffFx.play();
this.showEventLabel('BOOSTER NAME!!!');
this.showEventLabel('CHEESE!!!', new Color('#ffb517'), new Color('#ec830a'));
}
public onBoosterDisable() {
@ -118,25 +127,21 @@ export class UIController extends Component {
}
public starGame() {
this._tutorialPanel.active = true;
this._startPanel.active = false;
GameManager.instance.Ready();
}
private onTimeUpdate(time: number) {
this._timeLabe.string = this.secondsToTime(time);
this._timeLabel.string = this.secondsToTime(time);
}
private secondsToTime(second: number) {
const h = Math.floor(second / 3600)
.toString()
.padStart(2, '0'),
m = Math.floor((second % 3600) / 60)
.toString()
.padStart(2, '0'),
s = Math.floor(second % 60)
.toString()
.padStart(2, '0');
const m = Math.floor((second - (second % 60)) / 60)
.toString()
.padStart(2, '0');
const s = Math.floor(second % 60)
.toString()
.padStart(2, '0');
return h + ':' + m + ':' + s;
return m + ':' + s;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,14 +0,0 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "5318386a-c072-4982-b604-d79513736912",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -1,14 +0,0 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "1f602e14-2769-4903-b4d2-b0977eeaf36b",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "97c8a166-c717-41bd-837f-bd1733e2ee1c",
"uuid": "40b027bb-9e2f-40e5-85a7-cd32e2ad51af",
"files": [
".json",
".mp3"

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "fc66df28-6c8c-4915-adbd-5a3da652cfc6",
"uuid": "bab45dd0-83c3-45fe-958c-5a21a4c4a5bb",
"files": [
".json",
".mp3"

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "b8e26fea-3d75-4254-8fe6-4a57c40d6121",
"uuid": "a76cc94a-6331-47e7-b8aa-0caeea6a79eb",
"files": [
".json",
".mp3"

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "6a432293-3852-4267-be19-c671f36fe9f0",
"uuid": "90fc5275-7ce7-4e86-a757-0674c4fe8f18",
"files": [
".json",
".mp3"

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "4dba398c-e777-4670-8b1b-76b3fbfb4625",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "c4a1c16a-96e4-4e8a-9188-cf42b4f35f73",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "65a023cb-b98f-4470-ba2d-4eba9fe184fe",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "1ac12acc-dde3-4d31-9106-dfc30c030d40",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "ac21d2c4-7749-4701-af6a-b4ac4b43e7a5",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "d93b45ca-fea1-4d38-b460-170b6b65ae08",
"uuid": "4ce9d2c6-98c5-4d05-94af-70193bb795fe",
"files": [
".json",
".mp3"

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "ac267249-4228-4a86-b4d4-39f84a210668",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "b122d38e-ecf1-42e2-8b26-c09d306d90d9",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "d3b9a148-5c8e-41f4-9e87-c09175e20b2d",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "87e078a9-1082-4700-bd78-e6d0a06a150d",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "8602f38f-d976-4e2b-baa2-621a62f20261",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "015d5eb5-b790-46d8-a580-b35ecb94caf3",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

Binary file not shown.

View File

@ -1,14 +0,0 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "6452248b-259c-4844-b0e1-70f47d69955e",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

View File

@ -0,0 +1,12 @@
{
"ver": "1.1.0",
"importer": "directory",
"imported": true,
"uuid": "c8d16e87-7802-4c25-a930-edd7ed3a4ff4",
"files": [],
"subMetas": {},
"userData": {
"compressionType": {},
"isRemoteBundle": {}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Some files were not shown because too many files have changed in this diff Show More