first commit

This commit is contained in:
zzc
1970-01-01 08:23:24 +08:00
commit 40987bb7fd
121 changed files with 10935 additions and 0 deletions

BIN
assets/.DS_Store vendored Normal file

Binary file not shown.

9
assets/Music.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "0ff76cbf-36f2-4d5b-bc4c-dbd4f72af8b4",
"files": [],
"subMetas": {},
"userData": {}
}

BIN
assets/Music/.DS_Store vendored Normal file

Binary file not shown.

BIN
assets/Music/clear.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "226321ef-18ba-4971-8c1e-390621bd586a",
"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": "c70553ee-1056-4775-9ff9-c237a713654f",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/hint.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "506f2137-ea3a-496d-b351-278cd50ffd56",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/magic.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "255c0043-ac64-4437-89f0-c0f645a26918",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/play.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "1b3412d9-9df6-4e43-9b89-53f824efc759",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/remove.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "a5363c1d-f32a-400a-ba20-d69481533373",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/shuffle.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "5d1b053d-a3aa-43e9-b794-cd5acbb9767f",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/startAudio.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "0b1fe855-606c-411e-b287-72a9b2b78d59",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

BIN
assets/Music/victory.mp3 Normal file

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ver": "1.0.0",
"importer": "audio-clip",
"imported": true,
"uuid": "79b91b1d-d514-4317-91ba-4dfceaee8ae7",
"files": [
".json",
".mp3"
],
"subMetas": {},
"userData": {
"downloadMode": 0
}
}

9
assets/Scene.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "d163ab26-2b96-487d-9d30-78a04745f14a",
"files": [],
"subMetas": {},
"userData": {}
}

1395
assets/Scene/game.scene Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{
"ver": "1.1.50",
"importer": "scene",
"imported": true,
"uuid": "a8ddc926-6226-407d-8cf1-0e5cccfedc3f",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}

9
assets/prefabs.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "5709b521-7d29-4ad4-9b6d-27a537855d18",
"files": [],
"subMetas": {},
"userData": {}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "882a2789-3f01-4d0f-8211-e1fee5a16a23",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "Fruit-tu"
}
}

View File

@@ -0,0 +1,238 @@
[
{
"__type__": "cc.Prefab",
"_name": "Fruit-xm",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "Fruit-xm",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
},
{
"__id__": 6
},
{
"__id__": 8
},
{
"__id__": 10
}
],
"_prefab": {
"__id__": 12
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 1073741824,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 130,
"height": 207
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "5fQuHkImpBj7qMPlBXkk4K"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"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__": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca@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": "66g2/0F0hE67hdqMrxGNKj"
},
{
"__type__": "cc.RigidBody2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 7
},
"enabledContactListener": true,
"bullet": false,
"awakeOnLoad": true,
"_group": 2,
"_type": 2,
"_allowSleep": true,
"_gravityScale": 1,
"_linearDamping": 0,
"_angularDamping": 0,
"_linearVelocity": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_angularVelocity": 0,
"_fixedRotation": false,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f0b7B5HeRCHYvicqix9N56"
},
{
"__type__": "39730kTlZ1C0bpxxuRn3zcl",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 9
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a57Mv2Aa1JB72c+tuwhmiU"
},
{
"__type__": "cc.CircleCollider2D",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 11
},
"tag": 0,
"_group": 1,
"_density": 1,
"_sensor": false,
"_friction": 0.2,
"_restitution": 0.2,
"_offset": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_radius": 103.5,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "adXeTGfApEYIvaSMKRkhFw"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "c46/YsCPVOJYA4mWEpNYRx",
"instance": null,
"targetOverrides": null
}
]

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "285a06d7-c9a8-4c48-800e-62e6fb8ce88e",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "Fruit-xm"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "d44c3ca6-a681-48ac-b951-fcc77b4f3f41",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "Fruit-yz"
}
}

1714
assets/prefabs/Fruit.prefab Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "b0633cc2-95ae-4977-ae76-2433cbc855f0",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "Fruit"
}
}

14
assets/resources.meta Normal file
View File

@@ -0,0 +1,14 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "5a728680-790e-456e-97ba-7d0364f9d12a",
"files": [],
"subMetas": {},
"userData": {
"isBundle": true,
"bundleConfigID": "default",
"bundleName": "resources",
"priority": 8
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "7b2ffd95-2192-41db-a474-b9cc90d5c933",
"files": [],
"subMetas": {},
"userData": {}
}

BIN
assets/resources/textures/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a19c48c6-e2ce-473b-87a8-d1140251756c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a19c48c6-e2ce-473b-87a8-d1140251756c@6c48a",
"displayName": "1",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a19c48c6-e2ce-473b-87a8-d1140251756c",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "a19c48c6-e2ce-473b-87a8-d1140251756c@f9941",
"displayName": "1",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 240,
"height": 286,
"rawWidth": 240,
"rawHeight": 286,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-120,
-143,
0,
120,
-143,
0,
-120,
143,
0,
120,
143,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
286,
240,
286,
0,
0,
240,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-120,
-143,
0
],
"maxPos": [
120,
143,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a19c48c6-e2ce-473b-87a8-d1140251756c@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a19c48c6-e2ce-473b-87a8-d1140251756c@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "af528c64-b079-463b-88e0-7bfbba947bf2",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "af528c64-b079-463b-88e0-7bfbba947bf2@6c48a",
"displayName": "2",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "af528c64-b079-463b-88e0-7bfbba947bf2",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "af528c64-b079-463b-88e0-7bfbba947bf2@f9941",
"displayName": "2",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 3,
"offsetY": 0,
"trimX": 6,
"trimY": 0,
"width": 203,
"height": 307,
"rawWidth": 209,
"rawHeight": 307,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-101.5,
-153.5,
0,
101.5,
-153.5,
0,
-101.5,
153.5,
0,
101.5,
153.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
6,
307,
209,
307,
6,
0,
209,
0
],
"nuv": [
0.028708133971291867,
0,
1,
0,
0.028708133971291867,
1,
1,
1
],
"minPos": [
-101.5,
-153.5,
0
],
"maxPos": [
101.5,
153.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "af528c64-b079-463b-88e0-7bfbba947bf2@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "af528c64-b079-463b-88e0-7bfbba947bf2@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca@6c48a",
"displayName": "3",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca@f9941",
"displayName": "3",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 1,
"offsetY": 0,
"trimX": 2,
"trimY": 0,
"width": 222,
"height": 275,
"rawWidth": 224,
"rawHeight": 275,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-111,
-137.5,
0,
111,
-137.5,
0,
-111,
137.5,
0,
111,
137.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
2,
275,
224,
275,
2,
0,
224,
0
],
"nuv": [
0.008928571428571428,
0,
1,
0,
0.008928571428571428,
1,
1,
1
],
"minPos": [
-111,
-137.5,
0
],
"maxPos": [
111,
137.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "5b4d5825-6c8e-44e5-a71d-2d087c8993ca@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4e57c78e-d895-4138-a2b3-25b825699979",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4e57c78e-d895-4138-a2b3-25b825699979@6c48a",
"displayName": "4",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "4e57c78e-d895-4138-a2b3-25b825699979",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "4e57c78e-d895-4138-a2b3-25b825699979@f9941",
"displayName": "4",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 204,
"height": 287,
"rawWidth": 204,
"rawHeight": 287,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-102,
-143.5,
0,
102,
-143.5,
0,
-102,
143.5,
0,
102,
143.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
287,
204,
287,
0,
0,
204,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-102,
-143.5,
0
],
"maxPos": [
102,
143.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "4e57c78e-d895-4138-a2b3-25b825699979@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "4e57c78e-d895-4138-a2b3-25b825699979@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d@6c48a",
"displayName": "5",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d@f9941",
"displayName": "5",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 224,
"height": 278,
"rawWidth": 224,
"rawHeight": 278,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-112,
-139,
0,
112,
-139,
0,
-112,
139,
0,
112,
139,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
278,
224,
278,
0,
0,
224,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-112,
-139,
0
],
"maxPos": [
112,
139,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "c34a77c1-d19d-4f03-bbeb-4cbb51aa3d9d@6c48a"
}
}

9
assets/scripts.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "2eafa7e7-bc9b-4186-b7c6-8f48be012d0c",
"files": [],
"subMetas": {},
"userData": {}
}

77
assets/scripts/Board.ts Normal file
View File

@@ -0,0 +1,77 @@
import { _decorator, Node, Prefab, instantiate, SpriteFrame, tween, Vec3, Sprite } from "cc";
import { Fruit } from "./Fruit";
import { FruitNode } from "./FruitNode";
const { ccclass, property } = _decorator;
@ccclass("Board")
export class Board extends Node {
@property(Prefab) fruitPrefab: Prefab = null!;
@property([SpriteFrame]) fruitSprites: SpriteFrame[] = [];
board: (Fruit | null)[][] = [];
rows = 4;
cols = 4;
node: Node = null!;
onLoad() {
this.initBoard();
}
initBoard() {
this.board = [];
for (let r = 0; r < this.rows; r++) {
this.board[r] = [];
for (let c = 0; c < this.cols; c++) {
this.board[r][c] = null;
}
}
this.spawnFruit();
this.spawnFruit();
}
spawnFruit() {
let emptyCells: { r: number; c: number }[] = [];
for (let r = 0; r < this.rows; r++) {
for (let c = 0; c < this.cols; c++) {
if (!this.board[r][c]) emptyCells.push({ r, c });
}
}
if (emptyCells.length === 0) return;
let index = Math.floor(Math.random() * emptyCells.length);
let cell = emptyCells[index];
let node = instantiate(this.fruitPrefab);
node.setParent(this.node);
node.setPosition(new Vec3(cell.c * 100, cell.r * -100, 0));
let fruit = new Fruit(node, cell.r, cell.c, 1);
node.getComponent(FruitNode)!.init(fruit, this);
node.getComponent(Sprite)!.spriteFrame = this.fruitSprites[0];
this.board[cell.r][cell.c] = fruit;
}
merge(f1: Fruit, f2: Fruit) {
if (f1.level !== f2.level) return;
f1.level += 1;
if (f1.level - 1 < this.fruitSprites.length)
f1.node.getComponent(Sprite)!.spriteFrame = this.fruitSprites[f1.level - 1];
this.playMergeAnimation(f1.node, f2.node);
this.board[f2.row][f2.col] = null;
f2.node.destroy();
this.spawnFruit();
}
playMergeAnimation(n1: Node, n2: Node) {
// tween(n1)
// .to(0.2, { scale: 1.2 })
// .to(0.1, { scale: 1 })
// .start();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "6308cbf7-e95c-403f-922c-d21de1892e99",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,23 @@
import { _decorator, Node, Sprite } from "cc";
const { ccclass, property } = _decorator;
@ccclass("Fruit")
export class Fruit {
id: number = 0;
type: string = 'watermelon';
level: number = 1;
node: Node = null!;
row: number = 0;
col: number = 0;
constructor(node: Node, row: number, col: number, level: number = 1) {
this.node = node;
this.row = row;
this.col = col;
this.level = level;
}
setSprite(sprite: Sprite) {
this.node.getComponent(Sprite)!.spriteFrame = sprite.spriteFrame;
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "ff426be0-7138-4c1a-ae7a-1e8fbe8ecf48",
"files": [],
"subMetas": {},
"userData": {}
}

74
assets/scripts/Fruit.ts Normal file
View File

@@ -0,0 +1,74 @@
import { _decorator, Component, Sprite, SpriteFrame, UITransform, Size, CircleCollider2D, Contact2DType, IPhysics2DContact, RigidBody2D, Vec2, Node } from 'cc';
import { FRUITS, MAX_LEVEL } from './FruitConfig';
import { GameManager } from './GameManager';
const { ccclass, property } = _decorator;
@ccclass('Fruit')
export class Fruit extends Component {
@property
level = 1; // 1..MAX_LEVEL
@property(Sprite)
sprite!: Sprite;
game!: GameManager;
collider!: CircleCollider2D;
body!: RigidBody2D;
// 防止同一对重复合成
merging = false;
removed = false;
init(level: number, spriteFrame: SpriteFrame, game: GameManager) {
this.level = level;
this.game = game;
if (!this.sprite) this.sprite = this.getComponent(Sprite)!;
this.sprite.spriteFrame = spriteFrame;
const def = FRUITS[this.level - 1];
const ui = this.getComponent(UITransform)!;
ui.setContentSize(new Size(def.radius * 2, def.radius * 2));
this.collider = this.getComponent(CircleCollider2D)!;
this.collider.radius = def.radius;
this.body = this.getComponent(RigidBody2D)!;
this.body.enabled = true;
this.merging = false;
this.removed = false;
}
onEnable() {
const col = this.getComponent(CircleCollider2D);
if (col) col.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
}
onDisable() {
const col = this.getComponent(CircleCollider2D);
if (col) col.off(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
}
private onBeginContact(selfCol: CircleCollider2D, otherCol: CircleCollider2D, _contact: IPhysics2DContact | null) {
if (this.removed || this.merging) return;
const otherNode = otherCol.node as Node;
const otherFruit = otherNode.getComponent(Fruit);
if (!otherFruit || otherFruit.removed || otherFruit.merging) return;
// 仅同级可合成,且不能超过最大级
if (otherFruit.level !== this.level || this.level >= MAX_LEVEL) return;
// 为避免两者都合成,使用 uuid 决定触发者(只让“较小”的触发)
if (this.node.uuid > otherNode.uuid) return;
this.merging = true;
otherFruit.merging = true;
// 合成到下一级
const nextLevel = this.level + 1;
const wpA = this.node.worldPosition;
const wpB = otherNode.worldPosition;
const mid = wpA.clone().add(wpB).multiplyScalar(0.5);
this.game.spawnMerged(nextLevel, mid, this, otherFruit);
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "396f863c-03c8-48a2-970c-d60402224f68",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,37 @@
// assets/scripts/FruitConfig.ts
import { SpriteFrame } from 'cc';
export interface FruitDef {
level: number; // 1..MAX
name: string;
radius: number; // 物理半径(像素)
score: number; // 合成到该等级获得的分数
sprite?: SpriteFrame; // 运行时由 GameManager 注入
}
export const MAX_LEVEL = 11; // 西瓜
// 半径与分数可按手感微调(半径越大越难堆)
export const FRUITS: FruitDef[] = [
{ level: 1, name: '樱桃', radius: 26, score: 1 },
{ level: 2, name: '草莓', radius: 30, score: 2 },
{ level: 3, name: '葡萄', radius: 34, score: 4 },
{ level: 4, name: '橘子', radius: 38, score: 8 },
{ level: 5, name: '柠檬', radius: 44, score: 16 },
{ level: 6, name: '猕猴桃', radius: 50, score: 24 },
{ level: 7, name: '番茄', radius: 58, score: 36 },
{ level: 8, name: '桃子', radius: 66, score: 48 },
{ level: 9, name: '菠萝', radius: 74, score: 64 },
{ level: 10, name: '哈密瓜', radius: 84, score: 96 },
{ level: 11, name: '西瓜', radius: 96, score: 128 },
];
export function clampLevel(lv: number) {
if (lv < 1) return 1; if (lv > MAX_LEVEL) return MAX_LEVEL; return lv;
}
export function randomStartLevel(min=1, max=5) {
const a = Math.max(1, Math.min(MAX_LEVEL-1, min));
const b = Math.max(a, Math.min(MAX_LEVEL-1, max));
return Math.floor(Math.random() * (b - a + 1)) + a;
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "a88fb8bc-e48e-4301-82ba-479028f64ba3",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,43 @@
import { _decorator, Component, Node, Vec3, EventTouch, tween } from "cc";
import { Fruit } from "./Fruit";
import { Board } from "./Board";
const { ccclass, property } = _decorator;
@ccclass("FruitNode")
export class FruitNode extends Component {
public fruitId: number = 0
// fruit: Fruit = null!;
// board: Board = null!;
// init(fruit: Fruit, board: Board) {
// this.fruit = fruit;
// this.board = board;
// this.node.on(Node.EventType.TOUCH_MOVE, this.onDragMove, this);
// this.node.on(Node.EventType.TOUCH_END, this.onDragEnd, this);
// }
// onDragMove(event: EventTouch) {
// let delta = event.getDelta();
// this.node.position = this.node.position.add(new Vec3(delta.x, delta.y, 0));
// }
// onDragEnd() {
// for (let r = 0; r < this.board.rows; r++) {
// for (let c = 0; c < this.board.cols; c++) {
// let target = this.board.board[r][c];
// if (target && target !== this.fruit) {
// let dist = this.node.position.subtract(target.node.position).length();
// if (dist < 50) {
// this.board.merge(this.fruit, target);
// this.node.setPosition(target.node.position);
// return;
// }
// }
// }
// }
// // 回到原位
// this.node.setPosition(new Vec3(this.fruit.col * 100, this.fruit.row * -100, 0));
// }
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "39730913-959d-42d1-ba71-c6e467df3725",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,73 @@
import { _decorator, Component, Prefab,Node, instantiate, RigidBody2D, input, Input, EventTouch, UITransform, v3, Collider2D, Contact2DType } from "cc";
import { Board } from "./Board";
import { FruitNode } from "./FruitNode";
const { ccclass, property } = _decorator;
@ccclass("GameManager")
export class GameManager extends Component {
@property(Node)
fruitStart: Node = null;
@property(Node)
fruitParent: Node = null;
@property(Prefab)
fruitPrefabs: Prefab[] = [];
private _curFruit: Node = null;
start() {
this.createFruit()
input.on(Input.EventType.TOUCH_START, this.handelTouchStart, this)
input.on(Input.EventType.TOUCH_MOVE, this.handelTouchMove, this)
input.on(Input.EventType.TOUCH_END, this.handelTouchEnd, this)
}
handelTouchStart(event: EventTouch) {
}
handelTouchMove(event) {
const curPos = event.getUILocation();
const parentPos = this.fruitParent.getComponent(UITransform).convertToNodeSpaceAR(v3(curPos.x, curPos.y, 0));
// 当前水果坐标
const fruitPos = this._curFruit.getPosition();
fruitPos.x = parentPos.x
this._curFruit.setPosition(fruitPos);
}
handelTouchEnd(event) {
if (!this._curFruit) return;
this._curFruit.getComponent(RigidBody2D).enabled = true;
this._curFruit = null;
this.scheduleOnce(this.createFruit, 2)
}
private createFruit() {
const fruitId = Math.floor(Math.random() * 3);
const fruitNode = instantiate(this.fruitPrefabs[fruitId]);
fruitNode.setPosition(this.fruitStart.position);
fruitNode.getComponent(RigidBody2D).enabled = false;
fruitNode.getComponent(FruitNode).fruitId = fruitId
// 监听水果碰撞事件
const collider = fruitNode.getComponent(Collider2D);
collider.on(Contact2DType.BEGIN_CONTACT, this.handelBeginContact, this)
fruitNode.getComponent(RigidBody2D).gravityScale = 3; // 重力
this.fruitParent.addChild(fruitNode);
this._curFruit = fruitNode;
}
handelBeginContact(selfContact: Collider2D, otherContact: Collider2D) {
if(otherContact.group !== Math.pow(2, 1)) return;
console.log(111)
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "08c0e1a0-ea3f-4fd8-a1e7-d9a8db0ca468",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,290 @@
// assets/scripts/GameManager.ts
import {
_decorator,
Component,
Node,
Prefab,
instantiate,
NodePool,
UITransform,
Vec3,
v3,
input,
Input,
EventTouch,
SpriteFrame,
Sprite,
Label,
RigidBody2D,
Vec2,
tween,
AudioSource,
sys,
math,
} from 'cc';
import { FRUITS, clampLevel, randomStartLevel } from './FruitConfig';
import { Fruit } from './Fruit';
const { ccclass, property } = _decorator;
@ccclass('GameManager')
export class GameManager extends Component {
@property(Prefab)
fruitPrefab!: Prefab; // 统一水果预制
@property([SpriteFrame])
fruitSprites: SpriteFrame[] = []; // 长度需 >= FRUITS.length按等级顺序
@property(Node)
fruitRoot!: Node;
@property(Node)
preview!: Node; // 顶部预览点,挂 Sprite
@property(Node)
topSensor!: Node; // 仅用于场景绑定与可视化
@property(Node)
walls!: Node; // Left/Right/Floor用于取边界宽度可留空
@property(Label)
scoreLabel!: Label;
@property(Label)
bestLabel!: Label;
@property(Node)
dropLine!: Node; // 危险红线(可选)
@property(AudioSource)
sfx!: AudioSource; // 可选
// —— 可调参数 ——
@property
previewY = 560; // 预览/下落的 Y根据分辨率调整
@property
spawnCooldown = 0.2; // 连续投掷冷却
@property
previewClampPadding = 40; // 贴边留白
@property
randomStartMaxLevel = 5; // 随机初级水果最大等级
// —— 运行时状态 ——
nextLevel = 1; // 将要投的等级
queuedLevel = 1; // 下一颗的预告
canDrop = true;
isGameOver = false;
dangerOn = false;
score = 0;
best = 0;
private pool = new NodePool();
onLoad() {
// 把 SpriteFrame 注入配置(可选)
for (let i = 0; i < FRUITS.length; i++) {
FRUITS[i].sprite = this.fruitSprites[i] || FRUITS[i].sprite;
}
this.best = Number(sys.localStorage.getItem('best') || 0);
if (this.bestLabel) this.bestLabel.string = `${this.best}`;
if (this.scoreLabel) this.scoreLabel.string = `0`;
}
start() {
this.bindInput();
this.reset();
}
protected onDestroy() {
this.unbindInput();
}
bindInput() {
input.on(Input.EventType.TOUCH_MOVE, this.onMove, this);
input.on(Input.EventType.TOUCH_START, this.onMove, this); // 触摸开始也更新预览位置
input.on(Input.EventType.TOUCH_END, this.onDrop, this);
}
unbindInput() {
input.off(Input.EventType.TOUCH_MOVE, this.onMove, this);
input.off(Input.EventType.TOUCH_START, this.onMove, this);
input.off(Input.EventType.TOUCH_END, this.onDrop, this);
}
reset() {
this.isGameOver = false;
this.canDrop = true;
this.updateScore(0);
// 清场(放回对象池而非直接删)
const children = [...this.fruitRoot.children];
for (const c of children) this.recycleFruit(c);
// 初始化两个预报等级
this.nextLevel = randomStartLevel(1, this.randomStartMaxLevel);
this.queuedLevel = randomStartLevel(1, this.randomStartMaxLevel);
this.refreshPreview();
this.setDanger(false);
if (this.dropLine) this.dropLine.active = false;
}
refreshPreview() {
if (!this.preview) return;
const sp = this.preview.getComponent(Sprite)!;
const def = FRUITS[this.nextLevel - 1];
sp.spriteFrame = def.sprite!;
const ui = this.preview.getComponent(UITransform)!;
ui.setContentSize(def.radius * 2, def.radius * 2);
// 初始位置居中(仅设置 XY 固定在预览线)
const p = this.preview.position;
this.preview.active = true;
this.preview.setPosition(v3(0, this.previewY, p.z));
}
onMove(e: EventTouch) {
if (this.isGameOver) return;
const loc = e.getUILocation();
// 将屏幕坐标转本地 Canvas 坐标(父节点是 Canvas
const ui = this.node.getComponent(UITransform)!;
const local = ui.convertToNodeSpaceAR(new Vec3(loc.x, loc.y, 0));
// 约束 X
const halfW = ui.contentSize.width / 2;
const padding = this.previewClampPadding;
const x = math.clamp(local.x, -halfW + padding, halfW - padding);
const p = this.preview.position;
this.preview.setPosition(v3(x, this.previewY, p.z));
}
onDrop() {
if (this.isGameOver || !this.canDrop) return;
this.canDrop = false;
const dropPos = this.preview.worldPosition;
this.spawnFruit(this.nextLevel, dropPos);
// 队列前移 & 随机新队列
this.nextLevel = this.queuedLevel;
this.queuedLevel = randomStartLevel(1, this.randomStartMaxLevel);
this.refreshPreview();
// 冷却
this.scheduleOnce(() => (this.canDrop = true), this.spawnCooldown);
}
spawnFruit(level: number, worldPos: Vec3, inheritVel?: Vec2) {
const node = this.pool.size() > 0 ? this.pool.get()! : instantiate(this.fruitPrefab);
node.parent = this.fruitRoot;
node.active = true;
// 转换到 FruitRoot 的本地坐标
const local = this.fruitRoot.getComponent(UITransform)!.convertToNodeSpaceAR(worldPos.clone());
node.setPosition(local);
node.setScale(1, 1, 1);
node.setRotationFromEuler(0, 0, 0);
const fruit = node.getComponent(Fruit)!;
const index = Math.max(0, Math.min(level - 1, FRUITS.length - 1));
const sf = FRUITS[index].sprite!;
fruit.init(level, sf, this);
// 让它有一点随机水平初速度,手感更“弹”
const rb = node.getComponent(RigidBody2D)!;
const vx = Math.random() * 200 - 100;
rb.linearVelocity = inheritVel || new Vec2(vx, 0);
// 轻微缩放弹出效果
node.setScale(0.9, 0.9, 1);
tween(node).to(0.1, { scale: v3(1, 1, 1) }).start();
// 可选音效:下落
// this.playSfx(0.1);
return fruit;
}
// 被 Fruit 调用:把两颗同级水果合成到 nextLevel
spawnMerged(nextLevel: number, worldMid: Vec3, a: Fruit, b: Fruit) {
if (this.isGameOver) return;
// 读两者速度,合成后给一个小的向上速度,避免“坍塌”
const va = a.getComponent(RigidBody2D)!.linearVelocity;
const vb = b.getComponent(RigidBody2D)!.linearVelocity;
const inherit = new Vec2((va.x + vb.x) * 0.25, Math.max(120, (va.y + vb.y) * 0.25));
// 回收/删除旧的
this.recycleFruit(a.node);
this.recycleFruit(b.node);
// 生成新的
const f = this.spawnFruit(clampLevel(nextLevel), worldMid, inherit);
// 计分:按目标等级给分
this.updateScore(this.score + FRUITS[clampLevel(nextLevel) - 1].score);
// 合成特效:放大闪烁
const n = f.node;
const s0 = n.scale.clone();
tween(n)
.to(0.06, { scale: v3(s0.x * 1.15, s0.y * 1.15, 1) })
.to(0.08, { scale: v3(1, 1, 1) })
.start();
// 音效:合成
this.playSfx(0.2);
}
recycleFruit(node: Node) {
const fr = node.getComponent(Fruit);
if (fr) fr.removed = true;
node.removeFromParent();
this.pool.put(node);
}
updateScore(v: number) {
this.score = v;
if (this.scoreLabel) this.scoreLabel.string = `${this.score}`;
if (this.score > this.best) {
this.best = this.score;
sys.localStorage.setItem('best', String(this.best));
}
if (this.bestLabel) this.bestLabel.string = `${this.best}`;
}
setDanger(on: boolean) {
this.dangerOn = on;
if (this.dropLine) this.dropLine.active = on;
}
onGameOver() {
if (this.isGameOver) return;
this.isGameOver = true;
this.canDrop = false;
this.setDanger(true);
// 所有水果轻微变暗/缩放(可选)
this.fruitRoot.children.forEach((n) =>
tween(n).to(0.2, { scale: v3(0.95, 0.95, 1) }).start()
);
// 失败音
this.playSfx(0.35);
}
restart() {
this.reset();
this.canDrop = true;
}
playSfx(vol = 0.2) {
if (!this.sfx || !this.sfx.clip) return;
try {
this.sfx.volume = vol;
this.sfx.playOneShot(this.sfx.clip, vol);
} catch {}
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "28f0c3a2-ddde-4889-b568-9e2648bd280d",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -0,0 +1,48 @@
import { _decorator, Component, BoxCollider2D, Contact2DType, IPhysics2DContact, Node, Color } from 'cc';
import { Fruit } from './Fruit';
import { GameManager } from './GameManager';
const { ccclass, property } = _decorator;
@ccclass('TopSensor')
export class TopSensor extends Component {
@property(GameManager)
game!: GameManager;
@property
holdSeconds = 2.0; // 触顶持续秒数
private touching = new Map<Node, number>(); // node -> enterTime
onEnable() {
const col = this.getComponent(BoxCollider2D)!;
col.sensor = true;
col.on(Contact2DType.BEGIN_CONTACT, this.onBegin, this);
col.on(Contact2DType.END_CONTACT, this.onEnd, this);
}
onDisable() {
const col = this.getComponent(BoxCollider2D)!;
col.off(Contact2DType.BEGIN_CONTACT, this.onBegin, this);
col.off(Contact2DType.END_CONTACT, this.onEnd, this);
}
private onBegin(_self: BoxCollider2D, other: any, _c: IPhysics2DContact | null) {
const f = (other.node as Node).getComponent(Fruit);
if (f) this.touching.set(other.node, performance.now() / 1000);
}
private onEnd(_self: BoxCollider2D, other: any) {
this.touching.delete(other.node);
}
update() {
if (!this.game || this.game.isGameOver) return;
const now = performance.now() / 1000;
for (const [node, t] of this.touching) {
if (now - t >= this.holdSeconds) {
this.game.onGameOver();
break;
}
}
// 可选:把状态交给 GameManager 显示红线闪烁
this.game.setDanger(this.touching.size > 0);
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "945e3d70-b62b-4d2b-a9f0-a595ef1021b6",
"files": [],
"subMetas": {},
"userData": {}
}

9
assets/ui.meta Normal file
View File

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "a26619bb-0a18-4a4c-861b-5c3da6e9c065",
"files": [],
"subMetas": {},
"userData": {}
}

BIN
assets/ui/.DS_Store vendored Normal file

Binary file not shown.

BIN
assets/ui/Music.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

134
assets/ui/Music.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413@6c48a",
"displayName": "Music",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413@f9941",
"displayName": "Music",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 45,
"trimY": 25,
"width": 110,
"height": 150,
"rawWidth": 200,
"rawHeight": 200,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-55,
-75,
0,
55,
-75,
0,
-55,
75,
0,
55,
75,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
45,
175,
155,
175,
45,
25,
155,
25
],
"nuv": [
0.225,
0.125,
0.775,
0.125,
0.225,
0.875,
0.775,
0.875
],
"minPos": [
-55,
-75,
0
],
"maxPos": [
55,
75,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "66a951bb-1d71-4b2c-8eb6-fd42cc5c0413@6c48a"
}
}

BIN
assets/ui/ad.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

134
assets/ui/ad.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "0b92f301-47bc-4438-9dc6-6f3291c5f638",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "0b92f301-47bc-4438-9dc6-6f3291c5f638@6c48a",
"displayName": "ad",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "0b92f301-47bc-4438-9dc6-6f3291c5f638",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "0b92f301-47bc-4438-9dc6-6f3291c5f638@f9941",
"displayName": "ad",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": -2,
"offsetY": 0,
"trimX": 35,
"trimY": 39,
"width": 182,
"height": 178,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-91,
-89,
0,
91,
-89,
0,
-91,
89,
0,
91,
89,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
35,
217,
217,
217,
35,
39,
217,
39
],
"nuv": [
0.13671875,
0.15234375,
0.84765625,
0.15234375,
0.13671875,
0.84765625,
0.84765625,
0.84765625
],
"minPos": [
-91,
-89,
0
],
"maxPos": [
91,
89,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "0b92f301-47bc-4438-9dc6-6f3291c5f638@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "0b92f301-47bc-4438-9dc6-6f3291c5f638@6c48a"
}
}

BIN
assets/ui/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

134
assets/ui/bg.jpg.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438",
"files": [
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438@6c48a",
"displayName": "bg",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438@f9941",
"displayName": "bg",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 582,
"height": 876,
"rawWidth": 582,
"rawHeight": 876,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-291,
-438,
0,
291,
-438,
0,
-291,
438,
0,
291,
438,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
876,
582,
876,
0,
0,
582,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-291,
-438,
0
],
"maxPos": [
291,
438,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e1c0688e-a6d3-48b7-8a1b-1f3db5b2c438@6c48a"
}
}

BIN
assets/ui/bg_block.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

134
assets/ui/bg_block.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "38593591-e719-4f26-8a25-db4e021d8f3f",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "38593591-e719-4f26-8a25-db4e021d8f3f@6c48a",
"displayName": "bg_block",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "38593591-e719-4f26-8a25-db4e021d8f3f",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "38593591-e719-4f26-8a25-db4e021d8f3f@f9941",
"displayName": "bg_block",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 198,
"height": 198,
"rawWidth": 198,
"rawHeight": 198,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-99,
-99,
0,
99,
-99,
0,
-99,
99,
0,
99,
99,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
198,
198,
198,
0,
0,
198,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-99,
-99,
0
],
"maxPos": [
99,
99,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "38593591-e719-4f26-8a25-db4e021d8f3f@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "38593591-e719-4f26-8a25-db4e021d8f3f@6c48a"
}
}

BIN
assets/ui/buttonStart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc@6c48a",
"displayName": "buttonStart",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc@f9941",
"displayName": "buttonStart",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 6,
"offsetY": -1.5,
"trimX": 12,
"trimY": 15,
"width": 388,
"height": 293,
"rawWidth": 400,
"rawHeight": 320,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-194,
-146.5,
0,
194,
-146.5,
0,
-194,
146.5,
0,
194,
146.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
12,
305,
400,
305,
12,
12,
400,
12
],
"nuv": [
0.03,
0.0375,
1,
0.0375,
0.03,
0.953125,
1,
0.953125
],
"minPos": [
-194,
-146.5,
0
],
"maxPos": [
194,
146.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "b064e3fd-a28b-4f0e-85fe-a19c402cd8dc@6c48a"
}
}

BIN
assets/ui/hand.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

134
assets/ui/hand.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "12833244-7bd0-4417-b298-ccd19e59b3e6",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "12833244-7bd0-4417-b298-ccd19e59b3e6@6c48a",
"displayName": "hand",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "12833244-7bd0-4417-b298-ccd19e59b3e6",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "12833244-7bd0-4417-b298-ccd19e59b3e6@f9941",
"displayName": "hand",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 28,
"trimY": 0,
"width": 200,
"height": 256,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-100,
-128,
0,
100,
-128,
0,
-100,
128,
0,
100,
128,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
28,
256,
228,
256,
28,
0,
228,
0
],
"nuv": [
0.109375,
0,
0.890625,
0,
0.109375,
1,
0.890625,
1
],
"minPos": [
-100,
-128,
0
],
"maxPos": [
100,
128,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "12833244-7bd0-4417-b298-ccd19e59b3e6@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "12833244-7bd0-4417-b298-ccd19e59b3e6@6c48a"
}
}

BIN
assets/ui/hint.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

134
assets/ui/hint.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "2cfb061e-ef65-42d7-868d-d1232daf0ddb",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "2cfb061e-ef65-42d7-868d-d1232daf0ddb@6c48a",
"displayName": "hint",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "2cfb061e-ef65-42d7-868d-d1232daf0ddb",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "2cfb061e-ef65-42d7-868d-d1232daf0ddb@f9941",
"displayName": "hint",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 256,
"height": 256,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-128,
-128,
0,
128,
-128,
0,
-128,
128,
0,
128,
128,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
256,
256,
256,
0,
0,
256,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-128,
-128,
0
],
"maxPos": [
128,
128,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "2cfb061e-ef65-42d7-868d-d1232daf0ddb@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "2cfb061e-ef65-42d7-868d-d1232daf0ddb@6c48a"
}
}

BIN
assets/ui/laba.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

134
assets/ui/laba.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "572b4278-e7c1-457c-a1aa-394095659678",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "572b4278-e7c1-457c-a1aa-394095659678@6c48a",
"displayName": "laba",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "572b4278-e7c1-457c-a1aa-394095659678",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "572b4278-e7c1-457c-a1aa-394095659678@f9941",
"displayName": "laba",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": -0.5,
"offsetY": 2,
"trimX": 0,
"trimY": 0,
"width": 222,
"height": 196,
"rawWidth": 223,
"rawHeight": 200,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-111,
-98,
0,
111,
-98,
0,
-111,
98,
0,
111,
98,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
200,
222,
200,
0,
4,
222,
4
],
"nuv": [
0,
0.02,
0.9955156950672646,
0.02,
0,
1,
0.9955156950672646,
1
],
"minPos": [
-111,
-98,
0
],
"maxPos": [
111,
98,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "572b4278-e7c1-457c-a1aa-394095659678@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "572b4278-e7c1-457c-a1aa-394095659678@6c48a"
}
}

BIN
assets/ui/land.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

134
assets/ui/land.jpg.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "9336428b-125f-4890-9d06-491a915a129d",
"files": [
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "9336428b-125f-4890-9d06-491a915a129d@6c48a",
"displayName": "land",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "9336428b-125f-4890-9d06-491a915a129d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "9336428b-125f-4890-9d06-491a915a129d@f9941",
"displayName": "land",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 268,
"height": 72,
"rawWidth": 268,
"rawHeight": 72,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-134,
-36,
0,
134,
-36,
0,
-134,
36,
0,
134,
36,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
72,
268,
72,
0,
0,
268,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-134,
-36,
0
],
"maxPos": [
134,
36,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "9336428b-125f-4890-9d06-491a915a129d@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "9336428b-125f-4890-9d06-491a915a129d@6c48a"
}
}

BIN
assets/ui/line.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

134
assets/ui/line.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f@6c48a",
"displayName": "line",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f@f9941",
"displayName": "line",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 13,
"trimY": 117,
"width": 230,
"height": 22,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-115,
-11,
0,
115,
-11,
0,
-115,
11,
0,
115,
11,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
13,
139,
243,
139,
13,
117,
243,
117
],
"nuv": [
0.05078125,
0.45703125,
0.94921875,
0.45703125,
0.05078125,
0.54296875,
0.94921875,
0.54296875
],
"minPos": [
-115,
-11,
0
],
"maxPos": [
115,
11,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "91853734-c4cd-4abc-90f8-e2eb3e7dc26f@6c48a"
}
}

BIN
assets/ui/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

134
assets/ui/logo.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb@6c48a",
"displayName": "logo",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb@f9941",
"displayName": "logo",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 4,
"offsetY": 5.5,
"trimX": 68,
"trimY": 155,
"width": 449,
"height": 112,
"rawWidth": 577,
"rawHeight": 433,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-224.5,
-56,
0,
224.5,
-56,
0,
-224.5,
56,
0,
224.5,
56,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
68,
278,
517,
278,
68,
166,
517,
166
],
"nuv": [
0.11785095320623917,
0.3833718244803695,
0.8960138648180243,
0.3833718244803695,
0.11785095320623917,
0.6420323325635104,
0.8960138648180243,
0.6420323325635104
],
"minPos": [
-224.5,
-56,
0
],
"maxPos": [
224.5,
56,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "46e4ca9d-4861-4169-b3bf-b69db7f5dbcb@6c48a"
}
}

BIN
assets/ui/magic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

134
assets/ui/magic.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "eebfe86c-d413-4122-a221-bf14aebdb8f0",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "eebfe86c-d413-4122-a221-bf14aebdb8f0@6c48a",
"displayName": "magic",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "eebfe86c-d413-4122-a221-bf14aebdb8f0",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "eebfe86c-d413-4122-a221-bf14aebdb8f0@f9941",
"displayName": "magic",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 1.5,
"offsetY": -1.5,
"trimX": 19,
"trimY": 19,
"width": 221,
"height": 221,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-110.5,
-110.5,
0,
110.5,
-110.5,
0,
-110.5,
110.5,
0,
110.5,
110.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
19,
237,
240,
237,
19,
16,
240,
16
],
"nuv": [
0.07421875,
0.0625,
0.9375,
0.0625,
0.07421875,
0.92578125,
0.9375,
0.92578125
],
"minPos": [
-110.5,
-110.5,
0
],
"maxPos": [
110.5,
110.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "eebfe86c-d413-4122-a221-bf14aebdb8f0@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "eebfe86c-d413-4122-a221-bf14aebdb8f0@6c48a"
}
}

BIN
assets/ui/mark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

134
assets/ui/mark.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "05961dc4-6a8d-47b6-b131-7560983e85ea",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "05961dc4-6a8d-47b6-b131-7560983e85ea@6c48a",
"displayName": "mark",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "05961dc4-6a8d-47b6-b131-7560983e85ea",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "05961dc4-6a8d-47b6-b131-7560983e85ea@f9941",
"displayName": "mark",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 256,
"height": 256,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-128,
-128,
0,
128,
-128,
0,
-128,
128,
0,
128,
128,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
256,
256,
256,
0,
0,
256,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-128,
-128,
0
],
"maxPos": [
128,
128,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "05961dc4-6a8d-47b6-b131-7560983e85ea@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "05961dc4-6a8d-47b6-b131-7560983e85ea@6c48a"
}
}

BIN
assets/ui/setting.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

134
assets/ui/setting.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "bd10f4ab-f62f-4b21-8096-f5610c68a014",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "bd10f4ab-f62f-4b21-8096-f5610c68a014@6c48a",
"displayName": "setting",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "bd10f4ab-f62f-4b21-8096-f5610c68a014",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "bd10f4ab-f62f-4b21-8096-f5610c68a014@f9941",
"displayName": "setting",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": -15,
"offsetY": -8,
"trimX": 24,
"trimY": 39,
"width": 100,
"height": 104,
"rawWidth": 178,
"rawHeight": 166,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-50,
-52,
0,
50,
-52,
0,
-50,
52,
0,
50,
52,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
24,
127,
124,
127,
24,
23,
124,
23
],
"nuv": [
0.1348314606741573,
0.13855421686746988,
0.6966292134831461,
0.13855421686746988,
0.1348314606741573,
0.7650602409638554,
0.6966292134831461,
0.7650602409638554
],
"minPos": [
-50,
-52,
0
],
"maxPos": [
50,
52,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "bd10f4ab-f62f-4b21-8096-f5610c68a014@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "bd10f4ab-f62f-4b21-8096-f5610c68a014@6c48a"
}
}

BIN
assets/ui/settingTab.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "8ab0eec0-991c-4a5d-9341-ffd49149192b",
"files": [
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "8ab0eec0-991c-4a5d-9341-ffd49149192b@6c48a",
"displayName": "settingTab",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "8ab0eec0-991c-4a5d-9341-ffd49149192b",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "8ab0eec0-991c-4a5d-9341-ffd49149192b@f9941",
"displayName": "settingTab",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 864,
"height": 1536,
"rawWidth": 864,
"rawHeight": 1536,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-432,
-768,
0,
432,
-768,
0,
-432,
768,
0,
432,
768,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
1536,
864,
1536,
0,
0,
864,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-432,
-768,
0
],
"maxPos": [
432,
768,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "8ab0eec0-991c-4a5d-9341-ffd49149192b@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "8ab0eec0-991c-4a5d-9341-ffd49149192b@6c48a"
}
}

BIN
assets/ui/shuffle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

134
assets/ui/shuffle.png.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "1f579682-24ae-426e-840b-316151aa307c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "1f579682-24ae-426e-840b-316151aa307c@6c48a",
"displayName": "shuffle",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "1f579682-24ae-426e-840b-316151aa307c",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "1f579682-24ae-426e-840b-316151aa307c@f9941",
"displayName": "shuffle",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": -0.5,
"offsetY": 0,
"trimX": 7,
"trimY": 8,
"width": 241,
"height": 240,
"rawWidth": 256,
"rawHeight": 256,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-120.5,
-120,
0,
120.5,
-120,
0,
-120.5,
120,
0,
120.5,
120,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
7,
248,
248,
248,
7,
8,
248,
8
],
"nuv": [
0.02734375,
0.03125,
0.96875,
0.03125,
0.02734375,
0.96875,
0.96875,
0.96875
],
"minPos": [
-120.5,
-120,
0
],
"maxPos": [
120.5,
120,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "1f579682-24ae-426e-840b-316151aa307c@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "1f579682-24ae-426e-840b-316151aa307c@6c48a"
}
}

BIN
assets/ui/startBg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

134
assets/ui/startBg.jpg.meta Normal file
View File

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "5c76760a-a149-44d4-9dd1-3b69bc58189f",
"files": [
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "5c76760a-a149-44d4-9dd1-3b69bc58189f@6c48a",
"displayName": "startBg",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "5c76760a-a149-44d4-9dd1-3b69bc58189f",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "5c76760a-a149-44d4-9dd1-3b69bc58189f@f9941",
"displayName": "startBg",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1024,
"height": 1536,
"rawWidth": 1024,
"rawHeight": 1536,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-512,
-768,
0,
512,
-768,
0,
-512,
768,
0,
512,
768,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
1536,
1024,
1536,
0,
0,
1024,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-512,
-768,
0
],
"maxPos": [
512,
768,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "5c76760a-a149-44d4-9dd1-3b69bc58189f@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "5c76760a-a149-44d4-9dd1-3b69bc58189f@6c48a"
}
}

BIN
assets/ui/switch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 KiB

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