Ver código fonte

差地图滚动

eraser 3 anos atrás
pai
commit
758c49a3c2
100 arquivos alterados com 3535 adições e 0 exclusões
  1. 13 0
      assets/Animations.meta
  2. 13 0
      assets/Animations/Game.meta
  3. 13 0
      assets/Animations/Game/Charactor.meta
  4. 377 0
      assets/Animations/Game/Charactor/Charactor.atlas
  5. 6 0
      assets/Animations/Game/Charactor/Charactor.atlas.meta
  6. 404 0
      assets/Animations/Game/Charactor/Charactor.json
  7. 10 0
      assets/Animations/Game/Charactor/Charactor.json.meta
  8. BIN
      assets/Animations/Game/Charactor/Charactor.png
  9. 38 0
      assets/Animations/Game/Charactor/Charactor.png.meta
  10. 29 0
      assets/Animations/Game/Charactor/Player1Arrow.anim
  11. 6 0
      assets/Animations/Game/Charactor/Player1Arrow.anim.meta
  12. 0 0
      assets/Animations/Game/Charactor/role1_ske.json
  13. 6 0
      assets/Animations/Game/Charactor/role1_ske.json.meta
  14. 13 0
      assets/Animations/Game/Handrail.meta
  15. 111 0
      assets/Animations/Game/Handrail/Kuolan.atlas
  16. 6 0
      assets/Animations/Game/Handrail/Kuolan.atlas.meta
  17. 272 0
      assets/Animations/Game/Handrail/Kuolan.json
  18. 10 0
      assets/Animations/Game/Handrail/Kuolan.json.meta
  19. BIN
      assets/Animations/Game/Handrail/Kuolan.png
  20. 38 0
      assets/Animations/Game/Handrail/Kuolan.png.meta
  21. 57 0
      assets/Animations/Game/Perfect.anim
  22. 6 0
      assets/Animations/Game/Perfect.anim.meta
  23. 13 0
      assets/Animations/Game/ReadGo.meta
  24. 0 0
      assets/Animations/Game/ReadGo/ready_0926_ske.json
  25. 6 0
      assets/Animations/Game/ReadGo/ready_0926_ske.json.meta
  26. 0 0
      assets/Animations/Game/ReadGo/ready_0926_tex.json
  27. 6 0
      assets/Animations/Game/ReadGo/ready_0926_tex.json.meta
  28. BIN
      assets/Animations/Game/ReadGo/ready_0926_tex.png
  29. 38 0
      assets/Animations/Game/ReadGo/ready_0926_tex.png.meta
  30. 13 0
      assets/Audios.meta
  31. 13 0
      assets/Audios/Game.meta
  32. BIN
      assets/Audios/Game/BGM.mp3
  33. 8 0
      assets/Audios/Game/BGM.mp3.meta
  34. BIN
      assets/Audios/Game/Boos.mp3
  35. 8 0
      assets/Audios/Game/Boos.mp3.meta
  36. BIN
      assets/Audios/Game/Cheers.mp3
  37. 8 0
      assets/Audios/Game/Cheers.mp3.meta
  38. BIN
      assets/Audios/Game/Combo.mp3
  39. 8 0
      assets/Audios/Game/Combo.mp3.meta
  40. BIN
      assets/Audios/Game/Hei.mp3
  41. 8 0
      assets/Audios/Game/Hei.mp3.meta
  42. BIN
      assets/Audios/Game/JumpDown.mp3
  43. 8 0
      assets/Audios/Game/JumpDown.mp3.meta
  44. 13 0
      assets/Audios/Game/Piano.meta
  45. BIN
      assets/Audios/Game/Piano/P1.mp3
  46. 8 0
      assets/Audios/Game/Piano/P1.mp3.meta
  47. BIN
      assets/Audios/Game/Piano/P10.mp3
  48. 8 0
      assets/Audios/Game/Piano/P10.mp3.meta
  49. BIN
      assets/Audios/Game/Piano/P2.mp3
  50. 8 0
      assets/Audios/Game/Piano/P2.mp3.meta
  51. BIN
      assets/Audios/Game/Piano/P3.mp3
  52. 8 0
      assets/Audios/Game/Piano/P3.mp3.meta
  53. BIN
      assets/Audios/Game/Piano/P4.mp3
  54. 8 0
      assets/Audios/Game/Piano/P4.mp3.meta
  55. BIN
      assets/Audios/Game/Piano/P5.mp3
  56. 8 0
      assets/Audios/Game/Piano/P5.mp3.meta
  57. BIN
      assets/Audios/Game/Piano/P6.mp3
  58. 8 0
      assets/Audios/Game/Piano/P6.mp3.meta
  59. BIN
      assets/Audios/Game/Piano/P7.mp3
  60. 8 0
      assets/Audios/Game/Piano/P7.mp3.meta
  61. BIN
      assets/Audios/Game/Piano/P8.mp3
  62. 8 0
      assets/Audios/Game/Piano/P8.mp3.meta
  63. BIN
      assets/Audios/Game/Piano/P9.mp3
  64. 8 0
      assets/Audios/Game/Piano/P9.mp3.meta
  65. BIN
      assets/Audios/Game/StartGun.mp3
  66. 8 0
      assets/Audios/Game/StartGun.mp3.meta
  67. BIN
      assets/Audios/Game/ready-go.mp3
  68. 8 0
      assets/Audios/Game/ready-go.mp3.meta
  69. 13 0
      assets/Particles.meta
  70. 107 0
      assets/Particles/Firework.plist
  71. 6 0
      assets/Particles/Firework.plist.meta
  72. 13 0
      assets/Prefabs.meta
  73. 13 0
      assets/Prefabs/Game.meta
  74. 654 0
      assets/Prefabs/Game/AccelerationBelt.prefab
  75. 9 0
      assets/Prefabs/Game/AccelerationBelt.prefab.meta
  76. 206 0
      assets/Prefabs/Game/LocationLine.prefab
  77. 9 0
      assets/Prefabs/Game/LocationLine.prefab.meta
  78. 0 0
      assets/Scenes/Game.fire
  79. 13 0
      assets/Scripts.meta
  80. 96 0
      assets/Scripts/AudioController.js
  81. 10 0
      assets/Scripts/AudioController.js.meta
  82. 27 0
      assets/Scripts/Charactor.js
  83. 10 0
      assets/Scripts/Charactor.js.meta
  84. 55 0
      assets/Scripts/CountDown.js
  85. 10 0
      assets/Scripts/CountDown.js.meta
  86. 38 0
      assets/Scripts/GameInstance.js
  87. 10 0
      assets/Scripts/GameInstance.js.meta
  88. 106 0
      assets/Scripts/GameMode.js
  89. 10 0
      assets/Scripts/GameMode.js.meta
  90. 17 0
      assets/Scripts/GameStates.js
  91. 10 0
      assets/Scripts/GameStates.js.meta
  92. 121 0
      assets/Scripts/Library.js
  93. 10 0
      assets/Scripts/Library.js.meta
  94. 28 0
      assets/Scripts/Map.js
  95. 10 0
      assets/Scripts/Map.js.meta
  96. 108 0
      assets/Scripts/PlayerController.js
  97. 10 0
      assets/Scripts/PlayerController.js.meta
  98. 36 0
      assets/Scripts/ReadyGo.js
  99. 10 0
      assets/Scripts/ReadyGo.js.meta
  100. 86 0
      assets/Scripts/ScreenShoot.js

+ 13 - 0
assets/Animations.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "0033b98d-0fac-4edb-8559-c2d4f3fda90e",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 13 - 0
assets/Animations/Game.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "bb25d9bf-7fad-4260-9063-d0b32d2bf6e8",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 13 - 0
assets/Animations/Game/Charactor.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "265f88d3-7a00-4a53-8028-6ee22effeb70",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 377 - 0
assets/Animations/Game/Charactor/Charactor.atlas

@@ -0,0 +1,377 @@
+
+Charactor.png
+size: 512,128
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+Boy_00
+  rotate: false
+  xy: 2, 19
+  size: 64, 60
+  orig: 64, 60
+  offset: 0, 0
+  index: -1
+Boy_01
+  rotate: false
+  xy: 196, 56
+  size: 32, 7
+  orig: 32, 7
+  offset: 0, 0
+  index: -1
+Boy_010
+  rotate: true
+  xy: 179, 42
+  size: 33, 7
+  orig: 33, 7
+  offset: 0, 0
+  index: -1
+Boy_011
+  rotate: false
+  xy: 293, 52
+  size: 31, 21
+  orig: 31, 21
+  offset: 0, 0
+  index: -1
+Boy_012
+  rotate: true
+  xy: 361, 39
+  size: 32, 21
+  orig: 32, 21
+  offset: 0, 0
+  index: -1
+Boy_013
+  rotate: true
+  xy: 498, 57
+  size: 31, 12
+  orig: 31, 12
+  offset: 0, 0
+  index: -1
+Boy_015
+  rotate: true
+  xy: 235, 32
+  size: 16, 18
+  orig: 16, 18
+  offset: 0, 0
+  index: -1
+Boy_016
+  rotate: false
+  xy: 169, 12
+  size: 13, 21
+  orig: 13, 21
+  offset: 0, 0
+  index: -1
+Boy_017
+  rotate: false
+  xy: 132, 3
+  size: 14, 25
+  orig: 14, 25
+  offset: 0, 0
+  index: -1
+Boy_018
+  rotate: false
+  xy: 235, 50
+  size: 19, 14
+  orig: 19, 14
+  offset: 0, 0
+  index: -1
+Boy_019
+  rotate: false
+  xy: 57, 2
+  size: 23, 13
+  orig: 23, 13
+  offset: 0, 0
+  index: -1
+Boy_02
+  rotate: false
+  xy: 146, 35
+  size: 31, 11
+  orig: 31, 11
+  offset: 0, 0
+  index: -1
+Boy_020
+  rotate: true
+  xy: 196, 65
+  size: 36, 37
+  orig: 36, 37
+  offset: 0, 0
+  index: -1
+Boy_021
+  rotate: false
+  xy: 256, 59
+  size: 35, 14
+  orig: 35, 14
+  offset: 0, 0
+  index: -1
+Boy_022
+  rotate: false
+  xy: 293, 34
+  size: 16, 16
+  orig: 16, 16
+  offset: 0, 0
+  index: -1
+Boy_023
+  rotate: false
+  xy: 256, 42
+  size: 21, 15
+  orig: 21, 15
+  offset: 0, 0
+  index: -1
+Boy_024
+  rotate: true
+  xy: 196, 40
+  size: 14, 22
+  orig: 14, 22
+  offset: 0, 0
+  index: -1
+Boy_025
+  rotate: false
+  xy: 220, 34
+  size: 13, 20
+  orig: 13, 20
+  offset: 0, 0
+  index: -1
+Boy_026
+  rotate: false
+  xy: 146, 48
+  size: 31, 27
+  orig: 31, 27
+  offset: 0, 0
+  index: -1
+Boy_027
+  rotate: false
+  xy: 230, 56
+  size: 3, 7
+  orig: 3, 7
+  offset: 0, 0
+  index: -1
+Boy_028
+  rotate: false
+  xy: 498, 48
+  size: 4, 7
+  orig: 4, 7
+  offset: 0, 0
+  index: -1
+Boy_029
+  rotate: true
+  xy: 139, 33
+  size: 3, 5
+  orig: 3, 5
+  offset: 0, 0
+  index: -1
+Boy_03
+  rotate: false
+  xy: 148, 84
+  size: 46, 17
+  orig: 46, 17
+  offset: 0, 0
+  index: -1
+Boy_030
+  rotate: false
+  xy: 326, 44
+  size: 33, 27
+  orig: 33, 27
+  offset: 0, 0
+  index: -1
+Boy_031
+  rotate: false
+  xy: 279, 48
+  size: 12, 9
+  orig: 12, 9
+  offset: 0, 0
+  index: -1
+Boy_032
+  rotate: false
+  xy: 148, 14
+  size: 19, 19
+  orig: 19, 19
+  offset: 0, 0
+  index: -1
+Boy_033
+  rotate: false
+  xy: 82, 2
+  size: 23, 13
+  orig: 23, 13
+  offset: 0, 0
+  index: -1
+Boy_034
+  rotate: false
+  xy: 255, 29
+  size: 21, 11
+  orig: 21, 11
+  offset: 0, 0
+  index: -1
+Boy_035
+  rotate: true
+  xy: 235, 66
+  size: 35, 19
+  orig: 35, 19
+  offset: 0, 0
+  index: -1
+Boy_036
+  rotate: false
+  xy: 311, 39
+  size: 11, 11
+  orig: 11, 11
+  offset: 0, 0
+  index: -1
+Boy_037
+  rotate: false
+  xy: 498, 90
+  size: 12, 36
+  orig: 12, 36
+  offset: 0, 0
+  index: -1
+Boy_038
+  rotate: true
+  xy: 111, 2
+  size: 20, 19
+  orig: 20, 19
+  offset: 0, 0
+  index: -1
+Boy_039
+  rotate: false
+  xy: 480, 47
+  size: 16, 23
+  orig: 16, 23
+  offset: 0, 0
+  index: -1
+Boy_04
+  rotate: false
+  xy: 259, 75
+  size: 65, 51
+  orig: 65, 51
+  offset: 0, 0
+  index: -1
+Boy_040
+  rotate: false
+  xy: 480, 31
+  size: 30, 14
+  orig: 30, 14
+  offset: 0, 0
+  index: -1
+Boy_041
+  rotate: true
+  xy: 139, 38
+  size: 41, 5
+  orig: 41, 5
+  offset: 0, 0
+  index: -1
+Boy_042
+  rotate: false
+  xy: 449, 40
+  size: 29, 30
+  orig: 29, 30
+  offset: 0, 0
+  index: -1
+Boy_043
+  rotate: false
+  xy: 417, 40
+  size: 30, 30
+  orig: 30, 30
+  offset: 0, 0
+  index: -1
+Boy_045
+  rotate: true
+  xy: 2, 81
+  size: 45, 144
+  orig: 45, 144
+  offset: 0, 0
+  index: -1
+Boy_05
+  rotate: false
+  xy: 68, 24
+  size: 62, 55
+  orig: 62, 55
+  offset: 0, 0
+  index: -1
+Boy_06
+  rotate: true
+  xy: 188, 50
+  size: 32, 6
+  orig: 32, 6
+  offset: 0, 0
+  index: -1
+Boy_08
+  rotate: false
+  xy: 326, 73
+  size: 61, 53
+  orig: 61, 53
+  offset: 0, 0
+  index: -1
+Boy_09
+  rotate: false
+  xy: 2, 6
+  size: 53, 11
+  orig: 53, 11
+  offset: 0, 0
+  index: -1
+Lian
+  rotate: false
+  xy: 447, 72
+  size: 49, 54
+  orig: 49, 54
+  offset: 0, 0
+  index: -1
+Tx1 (1)
+  rotate: false
+  xy: 389, 72
+  size: 56, 54
+  orig: 56, 54
+  offset: 0, 0
+  index: -1
+huoyan0
+  rotate: true
+  xy: 179, 35
+  size: 5, 4
+  orig: 5, 4
+  offset: 0, 0
+  index: -1
+huoyan1
+  rotate: false
+  xy: 148, 9
+  size: 5, 3
+  orig: 5, 3
+  offset: 0, 0
+  index: -1
+huoyan3
+  rotate: false
+  xy: 148, 115
+  size: 109, 11
+  orig: 109, 11
+  offset: 0, 0
+  index: -1
+huoyan5
+  rotate: false
+  xy: 148, 103
+  size: 109, 10
+  orig: 109, 10
+  offset: 0, 0
+  index: -1
+huoyan6
+  rotate: false
+  xy: 384, 40
+  size: 31, 30
+  orig: 31, 30
+  offset: 0, 0
+  index: -1
+huoyan7
+  rotate: false
+  xy: 148, 77
+  size: 35, 5
+  orig: 35, 5
+  offset: 0, 0
+  index: -1
+huoyan8
+  rotate: false
+  xy: 68, 17
+  size: 41, 5
+  orig: 41, 5
+  offset: 0, 0
+  index: -1
+huoyan9
+  rotate: true
+  xy: 132, 30
+  size: 49, 5
+  orig: 49, 5
+  offset: 0, 0
+  index: -1

+ 6 - 0
assets/Animations/Game/Charactor/Charactor.atlas.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "1.0.3",
+  "uuid": "99847513-bdd2-4f06-b344-8fd0014026fe",
+  "importer": "asset",
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 404 - 0
assets/Animations/Game/Charactor/Charactor.json


+ 10 - 0
assets/Animations/Game/Charactor/Charactor.json.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.2.5",
+  "uuid": "e94104a8-60ab-4eb5-8655-8ada47522ce8",
+  "importer": "spine",
+  "textures": [
+    "a9cdc1bd-1fbb-4a0a-b823-be6be735c030"
+  ],
+  "scale": 1,
+  "subMetas": {}
+}

BIN
assets/Animations/Game/Charactor/Charactor.png


+ 38 - 0
assets/Animations/Game/Charactor/Charactor.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "a9cdc1bd-1fbb-4a0a-b823-be6be735c030",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 512,
+  "height": 128,
+  "platformSettings": {},
+  "subMetas": {
+    "Charactor": {
+      "ver": "1.0.6",
+      "uuid": "d7cce3da-a953-447e-8df1-38d5e74c8144",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "a9cdc1bd-1fbb-4a0a-b823-be6be735c030",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 2,
+      "trimY": 2,
+      "width": 508,
+      "height": 124,
+      "rawWidth": 512,
+      "rawHeight": 128,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

+ 29 - 0
assets/Animations/Game/Charactor/Player1Arrow.anim

@@ -0,0 +1,29 @@
+{
+  "__type__": "cc.AnimationClip",
+  "_name": "Player1Arrow",
+  "_objFlags": 0,
+  "_native": "",
+  "_duration": 0.16666666666666666,
+  "sample": 60,
+  "speed": 0.2,
+  "wrapMode": 2,
+  "curveData": {
+    "props": {
+      "y": [
+        {
+          "frame": 0,
+          "value": 270
+        },
+        {
+          "frame": 0.08333333333333333,
+          "value": 290
+        },
+        {
+          "frame": 0.16666666666666666,
+          "value": 270
+        }
+      ]
+    }
+  },
+  "events": []
+}

+ 6 - 0
assets/Animations/Game/Charactor/Player1Arrow.anim.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "2.1.2",
+  "uuid": "77c200ad-e283-4a0e-9252-2cc6d80df627",
+  "importer": "animation-clip",
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
assets/Animations/Game/Charactor/role1_ske.json


+ 6 - 0
assets/Animations/Game/Charactor/role1_ske.json.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "1.0.3",
+  "uuid": "550ea988-ac65-412a-9642-6b40aa58d77c",
+  "importer": "dragonbones",
+  "subMetas": {}
+}

+ 13 - 0
assets/Animations/Game/Handrail.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "45293b0c-bed5-4e46-9028-f704a6688234",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 111 - 0
assets/Animations/Game/Handrail/Kuolan.atlas

@@ -0,0 +1,111 @@
+
+Kuolan.png
+size: 1024,256
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+Idle_00
+  rotate: true
+  xy: 102, 106
+  size: 58, 152
+  orig: 58, 152
+  offset: 0, 0
+  index: -1
+Idle_01
+  rotate: true
+  xy: 102, 166
+  size: 81, 157
+  orig: 81, 157
+  offset: 0, 0
+  index: -1
+Idle_02
+  rotate: false
+  xy: 2, 106
+  size: 98, 141
+  orig: 98, 141
+  offset: 0, 0
+  index: -1
+Idle_03
+  rotate: true
+  xy: 2, 2
+  size: 102, 122
+  orig: 102, 122
+  offset: 0, 0
+  index: -1
+Idle_04
+  rotate: true
+  xy: 878, 148
+  size: 99, 113
+  orig: 99, 113
+  offset: 0, 0
+  index: -1
+Idle_05
+  rotate: true
+  xy: 126, 4
+  size: 100, 114
+  orig: 100, 114
+  offset: 0, 0
+  index: -1
+Idle_06
+  rotate: false
+  xy: 376, 77
+  size: 99, 110
+  orig: 99, 110
+  offset: 0, 0
+  index: -1
+Idle_07
+  rotate: true
+  xy: 261, 88
+  size: 99, 113
+  orig: 99, 113
+  offset: 0, 0
+  index: -1
+Idle_08
+  rotate: true
+  xy: 477, 90
+  size: 98, 112
+  orig: 98, 112
+  offset: 0, 0
+  index: -1
+Idle_A1
+  rotate: true
+  xy: 261, 189
+  size: 58, 152
+  orig: 58, 152
+  offset: 0, 0
+  index: -1
+Idle_A2
+  rotate: true
+  xy: 415, 190
+  size: 57, 153
+  orig: 57, 153
+  offset: 0, 0
+  index: -1
+Idle_A3
+  rotate: true
+  xy: 725, 189
+  size: 58, 151
+  orig: 58, 151
+  offset: 0, 0
+  index: -1
+Idle_A4
+  rotate: true
+  xy: 570, 190
+  size: 57, 153
+  orig: 57, 153
+  offset: 0, 0
+  index: -1
+Kuolan_13
+  rotate: true
+  xy: 242, 8
+  size: 78, 90
+  orig: 78, 90
+  offset: 0, 0
+  index: -1
+Kuolan_14
+  rotate: false
+  xy: 591, 98
+  size: 78, 90
+  orig: 78, 90
+  offset: 0, 0
+  index: -1

+ 6 - 0
assets/Animations/Game/Handrail/Kuolan.atlas.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "1.0.3",
+  "uuid": "249ad852-f869-4657-be05-ad3a57471e28",
+  "importer": "asset",
+  "subMetas": {}
+}

+ 272 - 0
assets/Animations/Game/Handrail/Kuolan.json

@@ -0,0 +1,272 @@
+{
+"skeleton": { "hash": "+yyLfQOICuvyZKHr21ymMM9rJ5Y", "spine": "3.5.35", "width": 78, "height": 152.99, "images": "" },
+"bones": [
+	{ "name": "root" },
+	{ "name": "Idle_00", "parent": "root", "length": 119.05, "rotation": -1.76, "x": 100.69, "y": 11.78 },
+	{ "name": "Kuolan_13", "parent": "root", "rotation": 1.76, "x": 97.54, "y": 11.53 }
+],
+"slots": [
+	{ "name": "Kuolan_14", "bone": "Kuolan_13", "attachment": "Kuolan_14" },
+	{ "name": "Kuolan_13", "bone": "Kuolan_13", "attachment": "Kuolan_13" },
+	{ "name": "Idle_00", "bone": "Idle_00", "attachment": "Idle_00" }
+],
+"skins": {
+	"default": {
+		"Idle_00": {
+			"Idle_00": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 58, "height": 152 },
+			"Idle_01": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 81, "height": 157 },
+			"Idle_02": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 98, "height": 141 },
+			"Idle_03": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 102, "height": 122 },
+			"Idle_04": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 99, "height": 113 },
+			"Idle_05": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 100, "height": 114 },
+			"Idle_06": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 99, "height": 110 },
+			"Idle_07": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 99, "height": 113 },
+			"Idle_08": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 98, "height": 112 },
+			"Idle_A1": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 58, "height": 152 },
+			"Idle_A2": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 57, "height": 153 },
+			"Idle_A3": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 58, "height": 151 },
+			"Idle_A4": { "x": 11.62, "y": 76.45, "rotation": 1.76, "width": 57, "height": 153 }
+		},
+		"Kuolan_13": {
+			"Kuolan_13": {
+				"type": "mesh",
+				"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
+				"triangles": [ 1, 2, 3, 1, 3, 0 ],
+				"vertices": [ 55.56, -2.39, -22.41, 0, -19.65, 89.96, 58.32, 87.57 ],
+				"hull": 4,
+				"edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ],
+				"width": 78,
+				"height": 90
+			},
+			"Kuolan_14": {
+				"type": "mesh",
+				"uvs": [ 1, 1, 0, 1, 0, 0, 1, 0 ],
+				"triangles": [ 1, 2, 3, 1, 3, 0 ],
+				"vertices": [ 56.95, -1.22, -21.05, -1.22, -21.05, 88.78, 56.95, 88.78 ],
+				"hull": 4,
+				"edges": [ 0, 2, 2, 4, 4, 6, 0, 6 ],
+				"width": 78,
+				"height": 90
+			}
+		}
+	}
+},
+"animations": {
+	"Idl1_1": {
+		"bones": {
+			"Idle_00": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"Kuolan_13": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		}
+	},
+	"Idl1_2": {
+		"slots": {
+			"Idle_00": {
+				"attachment": [
+					{ "time": 0, "name": "Idle_A1" },
+					{ "time": 0.0667, "name": "Idle_A4" },
+					{ "time": 0.1333, "name": "Idle_A3" },
+					{ "time": 0.2, "name": "Idle_A2" },
+					{ "time": 0.2667, "name": "Idle_A1" }
+				]
+			},
+			"Kuolan_13": {
+				"attachment": [
+					{ "time": 0, "name": "Kuolan_13" },
+					{ "time": 0.2667, "name": "Kuolan_13" }
+				]
+			},
+			"Kuolan_14": {
+				"attachment": [
+					{ "time": 0, "name": null },
+					{ "time": 0.2667, "name": null }
+				]
+			}
+		},
+		"bones": {
+			"Idle_00": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{ "time": 0.0667, "angle": -7.46 },
+					{ "time": 0.1333, "angle": 2.37 },
+					{ "time": 0.2, "angle": -2.13 },
+					{ "time": 0.2667, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{ "time": 0.0667, "x": 1.01, "y": 0 },
+					{ "time": 0.1333, "x": -0.84, "y": -0.51 },
+					{ "time": 0.2667, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+					{ "time": 0.2667, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+					{ "time": 0.2667, "x": 0, "y": 0 }
+				]
+			},
+			"Kuolan_13": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"Kuolan_13": {
+					"Kuolan_13": [
+						{ "time": 0 },
+						{
+							"time": 0.0667,
+							"vertices": [ 7.39738, -2.28576, 7.43835, -1.19814, 8.69335, -1.24537, 8.65239, -2.33298 ]
+						},
+						{
+							"time": 0.1333,
+							"vertices": [ -1.78238, 0.89828, -1.79836, 0.22919, -2.57035, 0.24764, -2.5544, 0.91672 ]
+						},
+						{
+							"time": 0.2,
+							"vertices": [ -1.10076, -0.55887, -1.02832, 1.15331, 0.94727, 1.06974, 0.87481, -0.64245 ]
+						},
+						{ "time": 0.2667 }
+					],
+					"Kuolan_14": [
+						{ "time": 0, "curve": "stepped" },
+						{ "time": 0.2667 }
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.2667 }
+		]
+	},
+	"Idl1_3": {
+		"slots": {
+			"Idle_00": {
+				"attachment": [
+					{ "time": 0, "name": "Idle_00" },
+					{ "time": 0.0333, "name": "Idle_01" },
+					{ "time": 0.0667, "name": "Idle_02" },
+					{ "time": 0.1, "name": "Idle_03" },
+					{ "time": 0.1333, "name": "Idle_04" },
+					{ "time": 0.1667, "name": "Idle_05" },
+					{ "time": 0.2, "name": "Idle_06" },
+					{ "time": 0.2333, "name": "Idle_07" },
+					{ "time": 0.2667, "name": "Idle_08" }
+				]
+			},
+			"Kuolan_13": {
+				"attachment": [
+					{ "time": 0, "name": "Kuolan_13" },
+					{ "time": 0.0333, "name": "Kuolan_14" },
+					{ "time": 0.2667, "name": "Kuolan_14" }
+				]
+			},
+			"Kuolan_14": {
+				"attachment": [
+					{ "time": 0, "name": null },
+					{ "time": 0.2667, "name": null }
+				]
+			}
+		},
+		"bones": {
+			"Idle_00": {
+				"rotate": [
+					{ "time": 0, "angle": 0 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{ "time": 0.0333, "x": 13.53, "y": 3.69 },
+					{ "time": 0.0667, "x": 27.47, "y": -5.33 },
+					{ "time": 0.1, "x": 36.08, "y": -13.94 },
+					{ "time": 0.1333, "x": 39.77, "y": -20.91 },
+					{ "time": 0.1667, "x": 39.82, "y": -19.3 },
+					{ "time": 0.2, "x": 39.76, "y": -21.33 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			},
+			"Kuolan_13": {
+				"rotate": [
+					{ "time": 0, "angle": 0 },
+					{ "time": 0.1, "angle": -2.51 },
+					{ "time": 0.1333, "angle": 1.66 },
+					{ "time": 0.2667, "angle": 6.36 }
+				],
+				"translate": [
+					{ "time": 0, "x": 0, "y": 0 },
+					{ "time": 0.1, "x": 34.48, "y": -1.08 },
+					{ "time": 0.1333, "x": 53.72, "y": 1.54 },
+					{ "time": 0.1667, "x": 58.56, "y": 2.56 }
+				],
+				"scale": [
+					{ "time": 0, "x": 1, "y": 1 }
+				],
+				"shear": [
+					{ "time": 0, "x": 0, "y": 0 }
+				]
+			}
+		},
+		"deform": {
+			"default": {
+				"Kuolan_13": {
+					"Kuolan_13": [
+						{ "time": 0, "curve": "stepped" },
+						{ "time": 0.2667 }
+					],
+					"Kuolan_14": [
+						{ "time": 0, "curve": "stepped" },
+						{ "time": 0.2667 }
+					]
+				}
+			}
+		},
+		"drawOrder": [
+			{ "time": 0 },
+			{ "time": 0.2667 }
+		]
+	}
+}
+}

+ 10 - 0
assets/Animations/Game/Handrail/Kuolan.json.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.2.5",
+  "uuid": "9936b865-1526-4d83-a56a-e8b390667cb6",
+  "importer": "spine",
+  "textures": [
+    "f4a71479-a1e2-4027-bb32-fedf995276e9"
+  ],
+  "scale": 1,
+  "subMetas": {}
+}

BIN
assets/Animations/Game/Handrail/Kuolan.png


+ 38 - 0
assets/Animations/Game/Handrail/Kuolan.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "f4a71479-a1e2-4027-bb32-fedf995276e9",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 1024,
+  "height": 256,
+  "platformSettings": {},
+  "subMetas": {
+    "Kuolan": {
+      "ver": "1.0.6",
+      "uuid": "fba6dc1f-06fb-4438-8497-0bc074b833ad",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "f4a71479-a1e2-4027-bb32-fedf995276e9",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": -15.5,
+      "offsetY": 3.5,
+      "trimX": 2,
+      "trimY": 2,
+      "width": 989,
+      "height": 245,
+      "rawWidth": 1024,
+      "rawHeight": 256,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

+ 57 - 0
assets/Animations/Game/Perfect.anim

@@ -0,0 +1,57 @@
+{
+  "__type__": "cc.AnimationClip",
+  "_name": "Perfect",
+  "_objFlags": 0,
+  "_native": "",
+  "_duration": 0.8333333333333334,
+  "sample": 60,
+  "speed": 1,
+  "wrapMode": 1,
+  "curveData": {
+    "props": {
+      "scale": [
+        {
+          "frame": 0,
+          "value": {
+            "__type__": "cc.Vec2",
+            "x": 0.5,
+            "y": 0.5
+          }
+        },
+        {
+          "frame": 0.16666666666666666,
+          "value": {
+            "__type__": "cc.Vec2",
+            "x": 1,
+            "y": 1
+          }
+        }
+      ],
+      "y": [
+        {
+          "frame": 0,
+          "value": 160
+        },
+        {
+          "frame": 0.16666666666666666,
+          "value": 270
+        }
+      ],
+      "opacity": [
+        {
+          "frame": 0,
+          "value": 255
+        },
+        {
+          "frame": 0.16666666666666666,
+          "value": 255
+        },
+        {
+          "frame": 0.8333333333333334,
+          "value": 0
+        }
+      ]
+    }
+  },
+  "events": []
+}

+ 6 - 0
assets/Animations/Game/Perfect.anim.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "2.1.2",
+  "uuid": "5b37d33c-1488-41c2-918f-e7fc267d063d",
+  "importer": "animation-clip",
+  "subMetas": {}
+}

+ 13 - 0
assets/Animations/Game/ReadGo.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "c510db81-64ed-44c4-a7c4-95ecfb365590",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
assets/Animations/Game/ReadGo/ready_0926_ske.json


+ 6 - 0
assets/Animations/Game/ReadGo/ready_0926_ske.json.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "1.0.3",
+  "uuid": "2e7bb9cc-b289-425f-848e-376158696117",
+  "importer": "dragonbones",
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
assets/Animations/Game/ReadGo/ready_0926_tex.json


+ 6 - 0
assets/Animations/Game/ReadGo/ready_0926_tex.json.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "1.0.3",
+  "uuid": "93baae74-80b6-4e00-b5cf-16ca8301dd67",
+  "importer": "dragonbones-atlas",
+  "subMetas": {}
+}

BIN
assets/Animations/Game/ReadGo/ready_0926_tex.png


+ 38 - 0
assets/Animations/Game/ReadGo/ready_0926_tex.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "28bb7822-ef13-4142-9dd8-2c7da883ae40",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 1024,
+  "height": 2048,
+  "platformSettings": {},
+  "subMetas": {
+    "ready_0926_tex": {
+      "ver": "1.0.6",
+      "uuid": "412bb65b-3b6c-4076-961a-72021b5dd4fe",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "28bb7822-ef13-4142-9dd8-2c7da883ae40",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": -0.5,
+      "offsetY": 272,
+      "trimX": 1,
+      "trimY": 1,
+      "width": 1021,
+      "height": 1502,
+      "rawWidth": 1024,
+      "rawHeight": 2048,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

+ 13 - 0
assets/Audios.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "5c90fe4b-63ce-427a-9dd3-2ba3625eb68a",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 13 - 0
assets/Audios/Game.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "578780a7-34a4-42e0-9a41-0535b6285f96",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

BIN
assets/Audios/Game/BGM.mp3


+ 8 - 0
assets/Audios/Game/BGM.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "af183774-f678-4087-abcb-4e91dbb788a4",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 112.091429,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Boos.mp3


+ 8 - 0
assets/Audios/Game/Boos.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "b7233736-60a4-471b-b1f1-9e0d63e16774",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 2.04,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Cheers.mp3


+ 8 - 0
assets/Audios/Game/Cheers.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "b808a8ef-d4ac-4425-9a71-938ab3b3c317",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 4.92,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Combo.mp3


+ 8 - 0
assets/Audios/Game/Combo.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "2d58009f-298b-4cf4-9e42-48c8e9c68b9e",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 1.72175,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Hei.mp3


+ 8 - 0
assets/Audios/Game/Hei.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "7967d4c9-d043-4ddd-a551-6103ba5f9919",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.705306,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/JumpDown.mp3


+ 8 - 0
assets/Audios/Game/JumpDown.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "b0f0f9b9-d764-4d5b-a6d2-5fdb5e6fe158",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.648,
+  "subMetas": {}
+}

+ 13 - 0
assets/Audios/Game/Piano.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "e8feb79a-71ed-4c3d-8af5-46b46d09f92b",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P1.mp3


+ 8 - 0
assets/Audios/Game/Piano/P1.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "05256266-2de0-4a62-b6a8-8f1e0600e6fe",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.792,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P10.mp3


+ 8 - 0
assets/Audios/Game/Piano/P10.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "c67cdab7-4776-4979-b31a-c8ffdb797576",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.84,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P2.mp3


+ 8 - 0
assets/Audios/Game/Piano/P2.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "d62a4d90-7ea1-48fd-a4cc-91b88c3d67c6",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.84,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P3.mp3


+ 8 - 0
assets/Audios/Game/Piano/P3.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "c6e0cef1-074f-47e6-9201-dd2aaa759e71",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.816,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P4.mp3


+ 8 - 0
assets/Audios/Game/Piano/P4.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "48674460-20f6-4c4d-aa82-71f3e3325657",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.768,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P5.mp3


+ 8 - 0
assets/Audios/Game/Piano/P5.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "09658bd2-30c5-4c85-9d44-fa361001382f",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.696,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P6.mp3


+ 8 - 0
assets/Audios/Game/Piano/P6.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "bc458af1-3207-4b3c-87a3-01f7acf3dd36",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.672,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P7.mp3


+ 8 - 0
assets/Audios/Game/Piano/P7.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "6325612e-b2a5-43ba-a2b3-156c01becd1b",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.84,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P8.mp3


+ 8 - 0
assets/Audios/Game/Piano/P8.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "9d43f5a6-063c-4dee-b7c2-b6e4f8fec95d",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.792,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/Piano/P9.mp3


+ 8 - 0
assets/Audios/Game/Piano/P9.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "c25bf5be-0046-411c-9b21-e408e74f0f8f",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.816,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/StartGun.mp3


+ 8 - 0
assets/Audios/Game/StartGun.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "d8ca5097-1cc8-4a40-a251-7aabaf1cf886",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 0.653061,
+  "subMetas": {}
+}

BIN
assets/Audios/Game/ready-go.mp3


+ 8 - 0
assets/Audios/Game/ready-go.mp3.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "2.0.3",
+  "uuid": "4252909b-0a6b-4796-ab17-d1f58db6fb9b",
+  "importer": "audio-clip",
+  "downloadMode": 0,
+  "duration": 1.676,
+  "subMetas": {}
+}

+ 13 - 0
assets/Particles.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "5fb077cc-3562-4926-8d02-3a6aa0f25d95",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 107 - 0
assets/Particles/Firework.plist


+ 6 - 0
assets/Particles/Firework.plist.meta

@@ -0,0 +1,6 @@
+{
+  "ver": "2.0.3",
+  "uuid": "02dd525b-d623-4b93-a544-7d638769f282",
+  "importer": "particle",
+  "subMetas": {}
+}

+ 13 - 0
assets/Prefabs.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "88fce894-4ca2-4fb8-85c1-1041d0cb8742",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 13 - 0
assets/Prefabs/Game.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "111a0161-e485-469f-af40-56e3f25b71c5",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 654 - 0
assets/Prefabs/Game/AccelerationBelt.prefab

@@ -0,0 +1,654 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Acceleration belt",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 11
+      },
+      {
+        "__id__": 14
+      }
+    ],
+    "_active": true,
+    "_components": [],
+    "_prefab": {
+      "__id__": 17
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 720,
+      "height": 1280
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Cushion30",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      }
+    ],
+    "_prefab": {
+      "__id__": 4
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 206,
+      "height": 188
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        88,
+        -56,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "e0fa5c9a-a718-4d9e-8025-6153ce5db0ee"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "e5wyjjea9AoJ6Dls336iaq",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "WhiteAccelerationBandCenter",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 6
+      }
+    ],
+    "_prefab": {
+      "__id__": 7
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 121,
+      "height": 188
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        171,
+        -56,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 5
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "bf3a9cd8-4663-4dfc-9898-894372ac1a99"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "e1aQoX4qNHGYKwNNDQByIE",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "AccelerationBandCenter",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 9
+      }
+    ],
+    "_prefab": {
+      "__id__": 10
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 121,
+      "height": 188
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        171,
+        -56,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "8ed97a5c-e5be-4f5c-b50a-cd764108f938"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "7atTFgVdlGkKX+DHGX3iam",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Kuolan2",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 12
+      }
+    ],
+    "_prefab": {
+      "__id__": 13
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 78,
+      "height": 152.99
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        178,
+        -65,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "sp.Skeleton",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "7afd064b-113f-480e-b793-8817d19f63c3"
+      }
+    ],
+    "paused": false,
+    "defaultSkin": "",
+    "defaultAnimation": "",
+    "_preCacheMode": 0,
+    "_cacheMode": 0,
+    "loop": false,
+    "premultipliedAlpha": true,
+    "timeScale": 1,
+    "_accTime": 0,
+    "_playCount": 0,
+    "_frameCache": null,
+    "_curFrame": null,
+    "_skeletonCache": null,
+    "_animationName": "Idl1_3",
+    "_animationQueue": [],
+    "_headAniInfo": null,
+    "_playTimes": 0,
+    "_isAniComplete": true,
+    "_N$skeletonData": {
+      "__uuid__": "9936b865-1526-4d83-a56a-e8b390667cb6"
+    },
+    "_N$_defaultCacheMode": 0,
+    "_N$debugSlots": false,
+    "_N$debugBones": false,
+    "_N$debugMesh": false,
+    "_N$useTint": false,
+    "_N$enableBatch": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "94yc1iHlJJ+5LpPJXaF04U",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Kuolan1",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 15
+      }
+    ],
+    "_prefab": {
+      "__id__": 16
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 78,
+      "height": 152.99
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        138,
+        -160,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "sp.Skeleton",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "7afd064b-113f-480e-b793-8817d19f63c3"
+      }
+    ],
+    "paused": false,
+    "defaultSkin": "",
+    "defaultAnimation": "",
+    "_preCacheMode": 0,
+    "_cacheMode": 0,
+    "loop": false,
+    "premultipliedAlpha": true,
+    "timeScale": 1,
+    "_accTime": 0,
+    "_playCount": 0,
+    "_frameCache": null,
+    "_curFrame": null,
+    "_skeletonCache": null,
+    "_animationName": "",
+    "_animationQueue": [],
+    "_headAniInfo": null,
+    "_playTimes": 0,
+    "_isAniComplete": true,
+    "_N$skeletonData": {
+      "__uuid__": "9936b865-1526-4d83-a56a-e8b390667cb6"
+    },
+    "_N$_defaultCacheMode": 0,
+    "_N$debugSlots": false,
+    "_N$debugBones": false,
+    "_N$debugMesh": false,
+    "_N$useTint": false,
+    "_N$enableBatch": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "63TVF/aotCEaouD7JFpDah",
+    "sync": false
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "036cfe0b-8dac-4833-9471-d360513a2da2"
+    },
+    "fileId": "66xjXrdXtMsY3oxhM88IUD",
+    "sync": false
+  }
+]

+ 9 - 0
assets/Prefabs/Game/AccelerationBelt.prefab.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.3.2",
+  "uuid": "036cfe0b-8dac-4833-9471-d360513a2da2",
+  "importer": "prefab",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

+ 206 - 0
assets/Prefabs/Game/LocationLine.prefab

@@ -0,0 +1,206 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "LocationLineWhole",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [],
+    "_prefab": {
+      "__id__": 5
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 720,
+      "height": 1280
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "LocationLineWhole",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      }
+    ],
+    "_prefab": {
+      "__id__": 4
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 126,
+      "height": 226
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        23,
+        -56,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "3a1a763d-f9c8-49d7-91b6-38ef70bd8a69"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "c465d94f-dd8a-45c4-ae7d-911b4e3f3875"
+    },
+    "fileId": "4cCf3L4URKU5BFZv78WXDj",
+    "sync": false
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "c465d94f-dd8a-45c4-ae7d-911b4e3f3875"
+    },
+    "fileId": "e7ivXkp29L8KU5CnXaRzX1",
+    "sync": false
+  }
+]

+ 9 - 0
assets/Prefabs/Game/LocationLine.prefab.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.3.2",
+  "uuid": "c465d94f-dd8a-45c4-ae7d-911b4e3f3875",
+  "importer": "prefab",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
assets/Scenes/Game.fire


+ 13 - 0
assets/Scripts.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.3",
+  "uuid": "6b920680-7792-42fb-a11d-d1cb61bc7413",
+  "importer": "folder",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 96 - 0
assets/Scripts/AudioController.js

@@ -0,0 +1,96 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+
+    },
+    onLoad()
+    {
+        this.musicNameArr = [];
+        this.musicArr = [];
+    },
+    play(name)
+    {
+        for(let i=0;i<this.musicNameArr.length;i++)
+        {
+            if(name == this.musicNameArr[i])
+            {
+                return;
+            }
+        }
+
+        let self = this;
+
+        cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
+            let aAudio = cc.audioEngine.play(audioClip, false, 1);
+            self.musicNameArr.push(name); 
+            self.musicArr.push(aAudio); 
+        });
+    },
+    playAudio(name,callback)
+    {
+        for(let i=0;i<this.musicNameArr.length;i++)
+        {
+            if(name == this.musicNameArr[i])
+            {
+                return;
+            }
+        }
+
+        let self = this;
+
+        cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
+            let aAudio = cc.audioEngine.play(audioClip, false, 1);
+            self.musicNameArr.push(name); 
+            self.musicArr.push(aAudio); 
+            cc.audioEngine.setFinishCallback(aAudio, function ()
+            {
+                self.stop(name);
+                callback();
+            });
+        });
+    },
+    playBGM(name,volume,callback)
+    {
+        for(let i=0;i<this.musicNameArr.length;i++)
+        {
+            if(name == this.musicNameArr[i])
+            {
+                return;
+            }
+        }
+        let self = this;
+
+        cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
+            
+            let aAudio = cc.audioEngine.play(audioClip, true, volume);
+            self.musicNameArr.push(name); 
+            self.musicArr.push(aAudio); 
+            callback();
+        });
+    },
+    stop(name)
+    {
+        for(let i=0;i<this.musicNameArr.length;i++)
+        {
+            if(name == this.musicNameArr[i])
+            {
+                cc.audioEngine.stop(this.musicArr[i]);
+
+                this.musicArr.splice(i,1);
+                this.musicNameArr.splice(i,1);
+                return;
+            }
+        }
+    },
+    stopAll()
+    {
+        for(let i=0;i<this.musicNameArr.length;i++)
+        {
+            cc.audioEngine.stop(this.musicArr[i]); 
+        }
+
+        this.musicArr.length = 0;
+        this.musicNameArr.length = 0;
+    }
+});

+ 10 - 0
assets/Scripts/AudioController.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "bfb5e50c-568d-4529-a114-4e7988c6684b",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 27 - 0
assets/Scripts/Charactor.js

@@ -0,0 +1,27 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        
+    },
+    onLoad () {
+        this.anim = this.node.getComponent(sp.Skeleton);
+        this.anim.setCompleteListener(this.SpineEventCallback);
+    },
+    Run()
+    {
+        //this.anim.animation = 'run';// 要播放的动画名称【必填】
+        //this.anim.loop = true;// 是否循环
+        this.runAnim = this.anim.setAnimation(0, 'Run1', true);
+    },
+    Idel()
+    {
+        this.runAnim = this.anim.setAnimation(0, 'idle', true);
+    },
+    SpineEventCallback(trackEntry, loopCount)
+    {
+        if (trackEntry.animation.name === 'Run1') {
+            cc.log('Run1结束')
+        }
+    }
+});

+ 10 - 0
assets/Scripts/Charactor.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "f7012d77-c1eb-4aa0-ade3-0e9f5182025f",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 55 - 0
assets/Scripts/CountDown.js

@@ -0,0 +1,55 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+    
+    },
+    onLoad () {
+        this.TimeLabel = this.node.getComponent(cc.Label);
+        //init
+        this.Init();
+    },
+    Init()
+    {
+        this.curtTime = {'second':0,'millisecond':0,'secondBase':60,'millisecondBase':60};
+    },
+    CountDown(time,callback)
+    {
+        this.curtTime.second  = time.second;
+        this.curtTime.millisecond  = time.millisecond;
+        let times = this.curtTime.second*this.curtTime.millisecondBase + this.curtTime.millisecond;
+        times--;
+        
+        this.schedule(function(){
+            this.TimeMinus();
+            this.TimeLabel.string = this.ShowTime(this.curtTime);
+            if(this.curtTime.second*this.curtTime.millisecondBase + this.curtTime.millisecond == 0)
+            {
+                callback();
+            }
+        }.bind(this),0.01,times);
+    },
+    TimeMinus()
+    {
+        if((this.curtTime.millisecond-1) < 0)
+        {
+            this.curtTime.millisecond = this.curtTime.millisecondBase-1;
+            this.curtTime.second--;
+
+            return;
+        }
+
+        this.curtTime.millisecond--;
+    },
+    ShowTime(time)
+    {
+        if(time.millisecond<10)
+        {
+            return '0'+this.curtTime.second + ':0' + this.curtTime.millisecond;
+        }
+        else
+        {
+            return '0'+this.curtTime.second + ':' + this.curtTime.millisecond;
+        }
+    }
+});

+ 10 - 0
assets/Scripts/CountDown.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "6c452adb-9e6c-4eb8-910c-c7e5ccdbb09a",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 38 - 0
assets/Scripts/GameInstance.js

@@ -0,0 +1,38 @@
+// Learn cc.Class:
+//  - https://docs.cocos.com/creator/manual/en/scripting/class.html
+// Learn Attribute:
+//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
+// Learn life-cycle callbacks:
+//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
+
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        // foo: {
+        //     // ATTRIBUTES:
+        //     default: null,        // The default value will be used only when the component attaching
+        //                           // to a node for the first time
+        //     type: cc.SpriteFrame, // optional, default is typeof default
+        //     serializable: true,   // optional, default is true
+        // },
+        // bar: {
+        //     get () {
+        //         return this._bar;
+        //     },
+        //     set (value) {
+        //         this._bar = value;
+        //     }
+        // },
+    },
+
+    // LIFE-CYCLE CALLBACKS:
+
+    // onLoad () {},
+
+    start () {
+
+    },
+
+    // update (dt) {},
+});

+ 10 - 0
assets/Scripts/GameInstance.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "5d5822cc-7138-4086-ba3c-e0a9db8c70a2",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 106 - 0
assets/Scripts/GameMode.js

@@ -0,0 +1,106 @@
+let aGameInstance = require('GameInstance');
+let aWebView = require("WebView");
+let aLib = require("Library");
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        GameStates: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        PlayerControllerNode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        TimeLabelNode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        StartButtonNode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        TenSecondChallengeBG: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        ReadyGo: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+    },
+    onLoad () {
+        this.GameStatesScp = this.GameStates.getComponent('GameStates');
+        this.PlayerControllerScp = this.PlayerControllerNode.getComponent('PlayerController');
+        this.TimeLabelScp = this.TimeLabelNode.getComponent('CountDown');
+        this.ReadyGoScp = this.ReadyGo.getComponent('ReadyGo');
+
+        this.bStart = false;
+    },
+    start()
+    {
+        //是否在pC
+        if(!aLib.isMobile()) return;
+
+        let self = this;
+
+        aWebView.init(self.node, ()=>{
+            aWebView.onBindHitBoxingPost();
+            self.node.on('onBoxingPostHit',self.onBoxingPostHit,self);
+        });
+    },
+    onBoxingPostHit(data)
+    {
+        if(!this.GameStatesScp.bStart)
+        {
+            this.StarGame();
+        }
+        else
+        {
+            this.PlayerControllerScp.Run();
+        }
+        
+    },
+    //页面退出回调
+    onQuit(data)
+    {
+        console.log('onQuit=',data);
+    },
+    //弹出框回调
+    onQuitModal(res)
+    {
+        if (res.data.confirm) {
+            console.log("退出");
+        }else if(res.data.cancel){
+            console.log("取消退出");
+        }
+    },
+    StarGame(target,param)
+    {
+        this.PlayerControllerScp.Reset(); 
+        if(!this.ReadyGo.active)
+        {
+            this.ReadyGo.active = true;
+        }
+
+        this.ReadyGoScp.Play(function(){
+            this.GameStatesScp.bStart = true;
+
+            this.TimeLabelScp.CountDown({'second':10,'millisecond':0},function(){
+                this.GameStatesScp.bStart = false;
+                this.GameStatesScp.PunchTimes = 0;
+                this.StartButtonNode.active = true;
+                this.TenSecondChallengeBG.active = true;
+            }.bind(this));
+        }.bind(this));
+        this.StartButtonNode.active = false;
+        this.TenSecondChallengeBG.active = false;
+    }
+});

+ 10 - 0
assets/Scripts/GameMode.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "7cd0d77c-7783-40f8-b0de-4d83e5ee366c",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 17 - 0
assets/Scripts/GameStates.js

@@ -0,0 +1,17 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+      
+    },
+    onLoad () {
+        this.bStart =false;
+        this.startPosition = {'x':0,'y':0};
+        this.PunchTimes = 0;
+    },
+    start () {
+
+    },
+
+    // update (dt) {},
+});

+ 10 - 0
assets/Scripts/GameStates.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "9b9397fa-fb06-4953-b879-5994d3ba6793",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 121 - 0
assets/Scripts/Library.js

@@ -0,0 +1,121 @@
+let library ={
+    formatSeconds(value) {
+        let result = parseInt(value);
+        // let h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
+        // let m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
+        let m = Math.floor((result / 60 % 60)) < 10 ? '' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
+        let s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
+
+        let res = '';
+        // if(h !== '00') res += `${h}h`;
+        // if(m !== '00') res += `${m}min`;
+        // res += `${s}s`;
+        // if(h !== '00') res += `${h}:`;
+        res += `${m}:`;
+        res += `${s}`;
+        return res;
+    },
+    randomInt(min, max){
+        return Math.floor(Math.random() * (max+1 - min)) + min;
+    },
+    getRandom(start, end, fixed=0) {
+        //fixed 保留几位小数
+        let differ = end - start
+        let random = Math.random()
+        return (start + differ * random).toFixed(fixed)
+    },
+    removeObj(arr,obj)
+    {
+        let index = this.indexOf(arr,obj);
+
+        if (index > -1) {
+            arr.splice(index, 1);
+        }
+    },
+    indexOf(arr,obj) {
+        for (var i = 0; i < arr.length; i++) {
+            if (arr[i] == obj) return i;
+        }
+        return -1;
+    },
+    insert(arr,index, item) {
+        arr.splice(index, 0, item);
+    },
+    //数组元素位置替换
+    swapArray: function(arr, index1, index2) {
+        arr[index1] = arr.splice(index2, 1, arr[index1])[0];
+        return arr;
+    },
+    swapLeft : function(arr) {
+        let element = arr.shift();
+        arr.push(element);
+    },
+    //生成指定范围随机整数
+    randomFromIntRange: function(min, max) {
+        return Math.floor(Math.random() * (max - min)) + min;
+    },
+    happenRate: function(rate) {
+        let result = this.randomFromIntRange(0,100);
+        if(result<rate)
+        {
+            return true;
+        }
+        else
+        {
+            return false;
+        }
+        return;
+    },
+    openInWebview () {
+        let ua = navigator.userAgent.toLowerCase()
+        if (ua.match(/MicroMessenger/i) == 'micromessenger') { // 微信浏览器判断
+            return false
+        } else if (ua.match(/QQ/i) == 'qq') { // QQ浏览器判断
+            return false
+        } else if (ua.match(/WeiBo/i) == "weibo") {
+            return false
+        } else {
+            if (ua.match(/Android/i) != null) {
+                return ua.match(/browser/i) == null
+            } else if (ua.match(/iPhone/i) != null) {
+                return ua.match(/safari/i) == null
+            } else {
+                return (ua.match(/macintosh/i) == null && ua.match(/windows/i) == null)
+            }
+        }
+    },
+    isMobile()
+    {
+        let isChrome;
+        if(isChrome == window.google && window.chrome){
+            return false;
+        }
+        else{
+            return true;
+        }
+        // console.log('11111')
+        // if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
+        //     return true;
+        // } else {
+        //     return false;
+        // }
+    },
+    remove(arr, item) {
+        let index = arr.indexOf(item);
+        if (index > -1) {
+            arr.splice(index, 1);
+        }
+    },
+    setImageBase64(base64Url,callback){
+        let img = new Image();
+        img.src = base64Url;
+        img.onload = function(){
+            let texture = new cc.Texture2D();
+            texture.initWithElement(img);
+            texture.handleLoadedTexture();
+            if (callback)
+                callback(texture);
+        }
+    },
+};
+module.exports = library;

+ 10 - 0
assets/Scripts/Library.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "4e80f6a7-af60-4f07-8dca-63d5aceaf22e",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 28 - 0
assets/Scripts/Map.js

@@ -0,0 +1,28 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        BGArr: {
+            default: [],
+            type: [cc.Node], 
+            serializable: true,   
+        },
+        Player: {
+            default: null,
+            type: cc.Node, 
+            serializable: true,   
+        },
+    },
+    onLoad () 
+    {
+        this.distance = 0;
+    },
+    start () 
+    {
+
+    },
+    update (dt) 
+    {
+
+    },
+});

+ 10 - 0
assets/Scripts/Map.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "9a792b58-7f2e-44c8-9f9f-83c06f2c6944",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 108 - 0
assets/Scripts/PlayerController.js

@@ -0,0 +1,108 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        GameMode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        GameStates: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        PlayerNode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        CharactorNode: {
+            default: null, 
+            type: cc.Node, 
+            serializable: true,
+        },
+        PuchTimesLabel: {
+            default: null, 
+            type: cc.Label, 
+            serializable: true,
+        },
+    },
+    start () {
+
+        this.GameModeScp = this.GameMode.getComponent('GameMode');
+        this.GameStatesScp = this.GameStates.getComponent('GameStates');
+        this.CharactorScp = this.CharactorNode.getComponent('Charactor');
+
+        this.TouchEventScp = cc.find('Canvas').getComponent('TouchEvent');
+        this.TouchEventScp.registerListener(this.node);
+        this.node.on('touchstart',this.onEventStart,this);
+        this.node.on('swipe',this.onEventSwipe,this);
+
+        this.GameStatesScp.startPosition.x = this.PlayerNode.x;
+        this.GameStatesScp.startPosition.y = this.PlayerNode.y;
+
+        this.bRuning = false;
+    },
+    onEventStart(worldPoint)
+    {
+        if(!this.GameStatesScp.bStart) return;
+        console.log('touch start');
+        this.Run();
+    },
+    onEventSwipe(direction)
+    {
+        if(!this.GameStatesScp.bStart) return;
+        if(direction == 'left')
+        {
+            //console.log('left');
+        }
+        else if(direction == 'right')
+        {
+            //console.log('right');
+        }
+        else if(direction == 'up')
+        {
+            //console.log('up');
+        }
+        else if(direction == 'down')
+        {
+            //console.log('down');
+        }
+    },
+    Run()
+    {
+        this.CharactorScp.Run();
+        this.PlayerNode.x+=3;
+        this.GameStatesScp.PunchTimes++;
+        this.PuchTimesLabel.string = this.GameStatesScp.PunchTimes;
+
+        this.unschedule(this.StopRun);
+        this.scheduleOnce(this.StopRun,0.5);
+    },
+    StopRun()
+    {
+        let count = 2;
+        this.schedule(function(){
+            if(!this.GameStatesScp.bStart)
+            {
+                this.CharactorScp.Idel();
+                return;
+            }
+
+            this.PlayerNode.x+=1;
+            count--;
+            if(count==0)
+            {
+                this.CharactorScp.Idel();
+            }
+        }.bind(this),0.1,count)
+    },
+    Reset()
+    {
+        this.PlayerNode.x = this.GameStatesScp.startPosition.x;
+        this.PlayerNode.y = this.GameStatesScp.startPosition.y;
+
+        this.PuchTimesLabel.string = '0';
+    }
+});

+ 10 - 0
assets/Scripts/PlayerController.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "a1b8ab8f-cecb-4127-a343-7031eda2db14",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 36 - 0
assets/Scripts/ReadyGo.js

@@ -0,0 +1,36 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+        readyGoAudio: {
+            default: null,
+            type: cc.AudioSource,
+            serializable: true,  
+        },
+    },
+    onLoad () {
+        this.armatureDisplay = this.node.getComponent(dragonBones.ArmatureDisplay);
+        this.armature = this.armatureDisplay.armature();
+        //添加动画事件监听
+        this.armatureDisplay.addEventListener(dragonBones.EventObject.COMPLETE, this.animationEventHandler, this);
+        this.armatureDisplay.addEventListener(dragonBones.EventObject.FRAME_EVENT, this.animationEventHandler_Enter, this);
+    },
+    Play(callback)
+    {
+        this.callback = callback;
+        this.armature.animation.play("animation", 1);
+        this.readyGoAudio.play();
+    },
+    animationEventHandler(event) 
+    {
+        if (event.type === dragonBones.EventObject.COMPLETE) {
+            //主角
+            if (event.animationState.name === "animation") {
+                this.callback();
+            }
+        }
+    },
+    animationEventHandler_Enter(event) {
+
+    },
+});

+ 10 - 0
assets/Scripts/ReadyGo.js.meta

@@ -0,0 +1,10 @@
+{
+  "ver": "1.1.0",
+  "uuid": "01a67f5c-cc98-4486-a257-8fa8942d16b2",
+  "importer": "javascript",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 86 - 0
assets/Scripts/ScreenShoot.js

@@ -0,0 +1,86 @@
+cc.Class({
+    extends: cc.Component,
+
+    properties: {
+       
+    },
+    start()
+    {
+        let self =this;
+        let url = '';
+
+        this.scheduleOnce(function(){
+            url = self.screenshot().src;
+            console.log(url)
+        },2);
+        
+        // this.scheduleOnce(function(){
+        //     self.setConsoleImage(url);
+        // },4);
+        
+    },
+    screenshot() {
+    let node = cc.director.getScene().getChildByName("Canvas").getChildByName("screenshot");
+    let camera = node?.getComponent(cc.Camera);
+    if(!node){
+      node = new cc.Node("screenshot");
+      node.parent = cc.director.getScene().getChildByName("Canvas");
+      camera = node.addComponent(cc.Camera);
+    }
+  
+    // 设置你想要的截图内容的 cullingMask
+    // camera.cullingMask = 0xffffffff;
+  
+    // 新建一个 RenderTexture,并且设置 camera 的 targetTexture 为新建的 RenderTexture,这样 camera 的内容将会渲染到新建的 RenderTexture 中。
+    let texture = new cc.RenderTexture();
+    texture.initWithSize(cc.visibleRect.width, cc.visibleRect.height);
+    camera.targetTexture = texture;
+  
+    // 渲染一次摄像机,即更新一次内容到 RenderTexture 中
+    camera.render();
+  
+    // 这样我们就能从 RenderTexture 中获取到数据了
+    let data = texture.readPixels();
+  
+    // 接下来就可以对这些数据进行操作了
+    let canvas = document.createElement("canvas");
+    let ctx = canvas.getContext("2d");
+    canvas.width = texture.width;
+    canvas.height = texture.height;
+  
+    let width = texture.width;
+    let height = texture.height;
+  
+    let rowBytes = width * 4;
+    for (let row = 0; row < height; row++) {
+      let srow = height - 1 - row;
+      let imageData = ctx.createImageData(width, 1);
+      let start = srow * width * 4;
+      for (let i = 0; i < rowBytes; i++) {
+        imageData.data[i] = data[start + i];
+      }
+  
+      ctx.putImageData(imageData, 0, row);
+    }
+  
+    let dataURL = canvas.toDataURL("image/jpeg");
+    let img = document.createElement("img");
+    img.src = dataURL;
+    return img;
+  },
+  setConsoleImage(url) {
+    var img = new Image();
+    img.style.display = "none";
+  
+    document.body.appendChild(img);
+    img.src = url;
+    img.onload = function () {
+      var css = [
+        "padding: " + (img.height / 2 - 8) + "px " + img.width / 2 + "px;",
+        "line-height: " + img.height + "px;",
+        "background-image: url(" + url + ");",
+      ];
+      console.log("%c ", css.join(""));
+    };
+  }
+});

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff