├── tower-defence-toturial ├── .gitignore ├── assets │ ├── migration.meta │ ├── migration │ │ ├── use_v2.0.x_cc.Toggle_event.js │ │ └── use_v2.0.x_cc.Toggle_event.js.meta │ ├── prefabs.meta │ ├── prefabs │ │ ├── build_menu.prefab │ │ ├── build_menu.prefab.meta │ │ ├── bullet.prefab │ │ ├── bullet.prefab.meta │ │ ├── enemy.prefab │ │ ├── enemy.prefab.meta │ │ ├── level_1.prefab │ │ ├── level_1.prefab.meta │ │ ├── tower_a.prefab │ │ ├── tower_a.prefab.meta │ │ ├── tower_b.prefab │ │ ├── tower_b.prefab.meta │ │ ├── update_menu.prefab │ │ └── update_menu.prefab.meta │ ├── resources.meta │ ├── resources │ │ ├── beijing.png │ │ ├── beijing.png.meta │ │ ├── config.meta │ │ ├── config │ │ │ ├── level_config.json │ │ │ ├── level_config.json.meta │ │ │ ├── monster_config.json │ │ │ ├── monster_config.json.meta │ │ │ ├── tower_config.json │ │ │ └── tower_config.json.meta │ │ ├── mash_room_0.png │ │ ├── mash_room_0.png.meta │ │ ├── mash_room_1.png │ │ ├── mash_room_1.png.meta │ │ ├── mash_room_2.png │ │ ├── mash_room_2.png.meta │ │ ├── mash_room_3.png │ │ ├── mash_room_3.png.meta │ │ ├── mash_room_4.png │ │ ├── mash_room_4.png.meta │ │ ├── mash_room_5.png │ │ ├── mash_room_5.png.meta │ │ ├── mash_room_6.png │ │ ├── mash_room_6.png.meta │ │ ├── progress_bar_red.png │ │ ├── progress_bar_red.png.meta │ │ ├── 塔防_03.png │ │ ├── 塔防_03.png.meta │ │ ├── 塔防_05.png │ │ ├── 塔防_05.png.meta │ │ ├── 塔防_07.png │ │ ├── 塔防_07.png.meta │ │ ├── 塔防_13.png │ │ ├── 塔防_13.png.meta │ │ ├── 塔防_134.png │ │ ├── 塔防_134.png.meta │ │ ├── 塔防_137.png │ │ ├── 塔防_137.png.meta │ │ ├── 塔防_15.png │ │ ├── 塔防_15.png.meta │ │ ├── 塔防_17.png │ │ ├── 塔防_17.png.meta │ │ ├── 塔防_20.png │ │ ├── 塔防_20.png.meta │ │ ├── 塔防_23.png │ │ ├── 塔防_23.png.meta │ │ ├── 塔防_31.png │ │ ├── 塔防_31.png.meta │ │ ├── 塔防_34.png │ │ ├── 塔防_34.png.meta │ │ ├── 塔防_39.png │ │ ├── 塔防_39.png.meta │ │ ├── 塔防_42.png │ │ ├── 塔防_42.png.meta │ │ ├── 塔防_45.png │ │ ├── 塔防_45.png.meta │ │ ├── 塔防_48.png │ │ └── 塔防_48.png.meta │ ├── scenes.meta │ ├── scenes │ │ ├── game.fire │ │ └── game.fire.meta │ ├── scripts.meta │ └── scripts │ │ ├── build-menu.js │ │ ├── build-menu.js.meta │ │ ├── bullet.js │ │ ├── bullet.js.meta │ │ ├── enemy.js │ │ ├── enemy.js.meta │ │ ├── event-listener.js │ │ ├── event-listener.js.meta │ │ ├── game-ui-layer.js │ │ ├── game-ui-layer.js.meta │ │ ├── game-world.js │ │ ├── game-world.js.meta │ │ ├── global.js │ │ ├── global.js.meta │ │ ├── level.js │ │ ├── level.js.meta │ │ ├── tower.js │ │ ├── tower.js.meta │ │ ├── update-menu.js │ │ └── update-menu.js.meta ├── creator.d.ts ├── jsconfig.json ├── project.json └── settings │ ├── project.json │ └── services.json ├── tower-defence ├── .gitignore ├── assets │ ├── prefabs.meta │ ├── prefabs │ │ ├── level_1.prefab │ │ ├── level_1.prefab.meta │ │ ├── tower-menu-build.prefab │ │ ├── tower-menu-build.prefab.meta │ │ ├── tower_a.prefab │ │ ├── tower_a.prefab.meta │ │ ├── tower_b.prefab │ │ └── tower_b.prefab.meta │ ├── resources.meta │ ├── resources │ │ ├── beijing.png │ │ ├── beijing.png.meta │ │ ├── 塔防_03.png │ │ ├── 塔防_03.png.meta │ │ ├── 塔防_05.png │ │ ├── 塔防_05.png.meta │ │ ├── 塔防_07.png │ │ ├── 塔防_07.png.meta │ │ ├── 塔防_13.png │ │ ├── 塔防_13.png.meta │ │ ├── 塔防_134.png │ │ ├── 塔防_134.png.meta │ │ ├── 塔防_137.png │ │ ├── 塔防_137.png.meta │ │ ├── 塔防_15.png │ │ ├── 塔防_15.png.meta │ │ ├── 塔防_17.png │ │ ├── 塔防_17.png.meta │ │ ├── 塔防_20.png │ │ ├── 塔防_20.png.meta │ │ ├── 塔防_23.png │ │ ├── 塔防_23.png.meta │ │ ├── 塔防_31.png │ │ ├── 塔防_31.png.meta │ │ ├── 塔防_34.png │ │ ├── 塔防_34.png.meta │ │ ├── 塔防_39.png │ │ ├── 塔防_39.png.meta │ │ ├── 塔防_42.png │ │ ├── 塔防_42.png.meta │ │ ├── 塔防_45.png │ │ ├── 塔防_45.png.meta │ │ ├── 塔防_48.png │ │ └── 塔防_48.png.meta │ ├── scenes.meta │ ├── scenes │ │ ├── scene.fire │ │ └── scene.fire.meta │ ├── scripts.meta │ └── scripts │ │ ├── event-listener.js │ │ ├── event-listener.js.meta │ │ ├── game-world.js │ │ ├── game-world.js.meta │ │ ├── global.js │ │ ├── global.js.meta │ │ ├── level.js │ │ ├── level.js.meta │ │ ├── tower-menu-build.js │ │ ├── tower-menu-build.js.meta │ │ ├── tower.js │ │ └── tower.js.meta ├── creator.d.ts ├── jsconfig.json ├── project.json └── settings │ └── project.json └── 资源 ├── mash_room_0.png ├── mash_room_1.png ├── mash_room_2.png ├── mash_room_3.png ├── mash_room_4.png ├── mash_room_5.png ├── mash_room_6.png ├── 切图 ├── beijing.png ├── images │ ├── 塔防_01.png │ ├── 塔防_02.png │ ├── 塔防_03.png │ ├── 塔防_04.png │ ├── 塔防_05.png │ ├── 塔防_06.png │ ├── 塔防_07.png │ ├── 塔防_08.png │ ├── 塔防_09.png │ ├── 塔防_10.png │ ├── 塔防_11.png │ ├── 塔防_12.png │ ├── 塔防_13.png │ ├── 塔防_134.png │ ├── 塔防_137.png │ ├── 塔防_14.png │ ├── 塔防_15.png │ ├── 塔防_16.png │ ├── 塔防_17.png │ ├── 塔防_18.png │ ├── 塔防_19.png │ ├── 塔防_20.png │ ├── 塔防_21.png │ ├── 塔防_22.png │ ├── 塔防_23.png │ ├── 塔防_24.png │ ├── 塔防_25.png │ ├── 塔防_26.png │ ├── 塔防_27.png │ ├── 塔防_28.png │ ├── 塔防_29.png │ ├── 塔防_30.png │ ├── 塔防_31.png │ ├── 塔防_32.png │ ├── 塔防_33.png │ ├── 塔防_35.png │ ├── 塔防_36.png │ ├── 塔防_38.png │ ├── 塔防_39.png │ ├── 塔防_40.png │ ├── 塔防_41.png │ ├── 塔防_42.png │ ├── 塔防_43.png │ ├── 塔防_44.png │ ├── 塔防_45.png │ ├── 塔防_46.png │ ├── 塔防_47.png │ ├── 塔防_48.png │ ├── 塔防_49.png │ ├── 塔防_50.png │ ├── 塔防_51.png │ ├── 塔防_52.png │ ├── 塔防_53.png │ ├── 塔防_54.png │ ├── 塔防_55.png │ ├── 塔防_56.png │ ├── 塔防_57.png │ ├── 塔防_58.png │ ├── 塔防_59.png │ ├── 塔防_60.png │ └── 塔防_61.png ├── progress_bar_red.png ├── 塔防_03.png ├── 塔防_05.png ├── 塔防_07.png ├── 塔防_13.png ├── 塔防_134.png ├── 塔防_137.png ├── 塔防_15.png ├── 塔防_17.png ├── 塔防_20.png ├── 塔防_23.png ├── 塔防_31.png ├── 塔防_34.png ├── 塔防_37.png ├── 塔防_39.png ├── 塔防_42.png ├── 塔防_45.png └── 塔防_48.png └── 塔防.psd /tower-defence-toturial/.gitignore: -------------------------------------------------------------------------------- 1 | #///////////////////////////////////////////////////////////////////////////// 2 | # Fireball Projects 3 | #///////////////////////////////////////////////////////////////////////////// 4 | 5 | library/ 6 | temp/ 7 | local/ 8 | build/ 9 | 10 | #///////////////////////////////////////////////////////////////////////////// 11 | # Logs and databases 12 | #///////////////////////////////////////////////////////////////////////////// 13 | 14 | *.log 15 | *.sql 16 | *.sqlite 17 | 18 | #///////////////////////////////////////////////////////////////////////////// 19 | # files for debugger 20 | #///////////////////////////////////////////////////////////////////////////// 21 | 22 | *.sln 23 | *.csproj 24 | *.pidb 25 | *.unityproj 26 | *.suo 27 | 28 | #///////////////////////////////////////////////////////////////////////////// 29 | # OS generated files 30 | #///////////////////////////////////////////////////////////////////////////// 31 | 32 | .DS_Store 33 | ehthumbs.db 34 | Thumbs.db 35 | 36 | #///////////////////////////////////////////////////////////////////////////// 37 | # exvim files 38 | #///////////////////////////////////////////////////////////////////////////// 39 | 40 | *UnityVS.meta 41 | *.err 42 | *.err.meta 43 | *.exvim 44 | *.exvim.meta 45 | *.vimentry 46 | *.vimentry.meta 47 | *.vimproject 48 | *.vimproject.meta 49 | .vimfiles.*/ 50 | .exvim.*/ 51 | quick_gen_project_*_autogen.bat 52 | quick_gen_project_*_autogen.bat.meta 53 | quick_gen_project_*_autogen.sh 54 | quick_gen_project_*_autogen.sh.meta 55 | .exvim.app 56 | 57 | #///////////////////////////////////////////////////////////////////////////// 58 | # webstorm files 59 | #///////////////////////////////////////////////////////////////////////////// 60 | 61 | .idea/ 62 | 63 | #////////////////////////// 64 | # VS Code 65 | #////////////////////////// 66 | 67 | .vscode/ -------------------------------------------------------------------------------- /tower-defence-toturial/assets/migration.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "6ffb2d25-f7f8-4a70-a0a2-8d945e820823", 4 | "isSubpackage": false, 5 | "subpackageName": "", 6 | "subMetas": {} 7 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/migration/use_v2.0.x_cc.Toggle_event.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This script is automatically generated by Cocos Creator and is only compatible with projects prior to v2.1.0. 3 | * You do not need to manually add this script in any other project. 4 | * If you don't use cc.Toggle in your project, you can delete this script directly. 5 | * If your project is hosted in VCS such as git, submit this script together. 6 | * 7 | * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 之前版本的工程, 8 | * 你无需在任何其它项目中手动添加此脚本。 9 | * 如果你的项目中没用到 Toggle,可直接删除该脚本。 10 | * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 11 | */ 12 | 13 | if (cc.Toggle) { 14 | // Whether the 'toggle' and 'checkEvents' events are fired when 'toggle.check() / toggle.uncheck()' is called in the code 15 | // 在代码中调用 'toggle.check() / toggle.uncheck()' 时是否触发 'toggle' 与 'checkEvents' 事件 16 | cc.Toggle._triggerEventInScript_check = true; 17 | } 18 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/migration/use_v2.0.x_cc.Toggle_event.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "d246b17a-cace-4611-8f05-acd1abec2bb4", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "d3a64e45-c2d9-4d78-92de-181f0a620600", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/build_menu.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "build-menu", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | }, 20 | { 21 | "__id__": 5 22 | }, 23 | { 24 | "__id__": 10 25 | } 26 | ], 27 | "_tag": -1, 28 | "_active": true, 29 | "_components": [ 30 | { 31 | "__id__": 15 32 | } 33 | ], 34 | "_prefab": { 35 | "__id__": 16 36 | }, 37 | "_id": "", 38 | "_opacity": 255, 39 | "_color": { 40 | "__type__": "cc.Color", 41 | "r": 255, 42 | "g": 255, 43 | "b": 255, 44 | "a": 255 45 | }, 46 | "_cascadeOpacityEnabled": true, 47 | "_anchorPoint": { 48 | "__type__": "cc.Vec2", 49 | "x": 0.5, 50 | "y": 0.5 51 | }, 52 | "_contentSize": { 53 | "__type__": "cc.Size", 54 | "width": 0, 55 | "height": 0 56 | }, 57 | "_skewX": 0, 58 | "_skewY": 0, 59 | "_localZOrder": 0, 60 | "_globalZOrder": 0, 61 | "_opacityModifyRGB": false, 62 | "groupIndex": 0, 63 | "_trs": { 64 | "__type__": "TypedArray", 65 | "ctor": "Float64Array", 66 | "array": [ 67 | -712, 68 | -298, 69 | 0, 70 | 0, 71 | 0, 72 | 0, 73 | 1, 74 | 1, 75 | 1, 76 | 1 77 | ] 78 | } 79 | }, 80 | { 81 | "__type__": "cc.Node", 82 | "_name": "塔防_45", 83 | "_objFlags": 0, 84 | "_parent": { 85 | "__id__": 1 86 | }, 87 | "_children": [], 88 | "_tag": -1, 89 | "_active": true, 90 | "_components": [ 91 | { 92 | "__id__": 3 93 | } 94 | ], 95 | "_prefab": { 96 | "__id__": 4 97 | }, 98 | "_id": "", 99 | "_opacity": 255, 100 | "_color": { 101 | "__type__": "cc.Color", 102 | "r": 255, 103 | "g": 255, 104 | "b": 255, 105 | "a": 255 106 | }, 107 | "_cascadeOpacityEnabled": true, 108 | "_anchorPoint": { 109 | "__type__": "cc.Vec2", 110 | "x": 0.5, 111 | "y": 0.5 112 | }, 113 | "_contentSize": { 114 | "__type__": "cc.Size", 115 | "width": 320, 116 | "height": 320 117 | }, 118 | "_skewX": 0, 119 | "_skewY": 0, 120 | "_localZOrder": 0, 121 | "_globalZOrder": 0, 122 | "_opacityModifyRGB": false, 123 | "groupIndex": 0, 124 | "_trs": { 125 | "__type__": "TypedArray", 126 | "ctor": "Float64Array", 127 | "array": [ 128 | 0, 129 | 0, 130 | 0, 131 | 0, 132 | 0, 133 | 0, 134 | 1, 135 | 1, 136 | 1, 137 | 1 138 | ] 139 | } 140 | }, 141 | { 142 | "__type__": "cc.Sprite", 143 | "_name": "", 144 | "_objFlags": 0, 145 | "node": { 146 | "__id__": 2 147 | }, 148 | "_enabled": true, 149 | "_spriteFrame": { 150 | "__uuid__": "5c1a6ac5-5333-4b79-bf4a-f1f47f075723" 151 | }, 152 | "_type": 0, 153 | "_sizeMode": 1, 154 | "_fillType": 0, 155 | "_fillCenter": { 156 | "__type__": "cc.Vec2", 157 | "x": 0, 158 | "y": 0 159 | }, 160 | "_fillStart": 0, 161 | "_fillRange": 0, 162 | "_isTrimmedMode": true, 163 | "_srcBlendFactor": 770, 164 | "_dstBlendFactor": 771, 165 | "_atlas": null 166 | }, 167 | { 168 | "__type__": "cc.PrefabInfo", 169 | "root": { 170 | "__id__": 1 171 | }, 172 | "asset": { 173 | "__uuid__": "661f2662-c7bd-43a8-bfca-8a65487b3a58" 174 | }, 175 | "fileId": "00hX8yfK5OmYo5CtIgqJyf", 176 | "sync": false 177 | }, 178 | { 179 | "__type__": "cc.Node", 180 | "_name": "button_a", 181 | "_objFlags": 0, 182 | "_parent": { 183 | "__id__": 1 184 | }, 185 | "_children": [], 186 | "_tag": -1, 187 | "_active": true, 188 | "_components": [ 189 | { 190 | "__id__": 6 191 | }, 192 | { 193 | "__id__": 7 194 | } 195 | ], 196 | "_prefab": { 197 | "__id__": 9 198 | }, 199 | "_id": "", 200 | "_opacity": 255, 201 | "_color": { 202 | "__type__": "cc.Color", 203 | "r": 255, 204 | "g": 255, 205 | "b": 255, 206 | "a": 255 207 | }, 208 | "_cascadeOpacityEnabled": true, 209 | "_anchorPoint": { 210 | "__type__": "cc.Vec2", 211 | "x": 0.5, 212 | "y": 0.5 213 | }, 214 | "_contentSize": { 215 | "__type__": "cc.Size", 216 | "width": 93, 217 | "height": 114 218 | }, 219 | "_skewX": 0, 220 | "_skewY": 0, 221 | "_localZOrder": 0, 222 | "_globalZOrder": 0, 223 | "_opacityModifyRGB": false, 224 | "groupIndex": 0, 225 | "_trs": { 226 | "__type__": "TypedArray", 227 | "ctor": "Float64Array", 228 | "array": [ 229 | 0, 230 | 100, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 1, 236 | 1, 237 | 1, 238 | 1 239 | ] 240 | } 241 | }, 242 | { 243 | "__type__": "cc.Sprite", 244 | "_name": "", 245 | "_objFlags": 0, 246 | "node": { 247 | "__id__": 5 248 | }, 249 | "_enabled": true, 250 | "_spriteFrame": { 251 | "__uuid__": "d1befbbf-e943-47a2-946d-488f68b62422" 252 | }, 253 | "_type": 1, 254 | "_sizeMode": 0, 255 | "_fillType": 0, 256 | "_fillCenter": { 257 | "__type__": "cc.Vec2", 258 | "x": 0, 259 | "y": 0 260 | }, 261 | "_fillStart": 0, 262 | "_fillRange": 0, 263 | "_isTrimmedMode": true, 264 | "_srcBlendFactor": 770, 265 | "_dstBlendFactor": 771, 266 | "_atlas": null 267 | }, 268 | { 269 | "__type__": "cc.Button", 270 | "_name": "", 271 | "_objFlags": 0, 272 | "node": { 273 | "__id__": 5 274 | }, 275 | "_enabled": true, 276 | "transition": 2, 277 | "pressedColor": { 278 | "__type__": "cc.Color", 279 | "r": 255, 280 | "g": 255, 281 | "b": 255, 282 | "a": 255 283 | }, 284 | "hoverColor": { 285 | "__type__": "cc.Color", 286 | "r": 255, 287 | "g": 255, 288 | "b": 255, 289 | "a": 255 290 | }, 291 | "duration": 0.1, 292 | "zoomScale": 1.2, 293 | "pressedSprite": null, 294 | "hoverSprite": null, 295 | "clickEvents": [ 296 | { 297 | "__id__": 8 298 | } 299 | ], 300 | "_N$interactable": true, 301 | "_N$enableAutoGrayEffect": false, 302 | "_N$normalColor": { 303 | "__type__": "cc.Color", 304 | "r": 255, 305 | "g": 255, 306 | "b": 255, 307 | "a": 255 308 | }, 309 | "_N$disabledColor": { 310 | "__type__": "cc.Color", 311 | "r": 255, 312 | "g": 255, 313 | "b": 255, 314 | "a": 255 315 | }, 316 | "_N$normalSprite": { 317 | "__uuid__": "d1befbbf-e943-47a2-946d-488f68b62422" 318 | }, 319 | "_N$disabledSprite": null, 320 | "_N$target": { 321 | "__id__": 5 322 | } 323 | }, 324 | { 325 | "__type__": "cc.ClickEvent", 326 | "target": { 327 | "__id__": 1 328 | }, 329 | "component": "build-menu", 330 | "handler": "buttonClick", 331 | "customEventData": "0" 332 | }, 333 | { 334 | "__type__": "cc.PrefabInfo", 335 | "root": { 336 | "__id__": 1 337 | }, 338 | "asset": { 339 | "__uuid__": "661f2662-c7bd-43a8-bfca-8a65487b3a58" 340 | }, 341 | "fileId": "74mqsNy6ZDN7lwZm6fqR46", 342 | "sync": false 343 | }, 344 | { 345 | "__type__": "cc.Node", 346 | "_name": "button_b", 347 | "_objFlags": 0, 348 | "_parent": { 349 | "__id__": 1 350 | }, 351 | "_children": [], 352 | "_tag": -1, 353 | "_active": true, 354 | "_components": [ 355 | { 356 | "__id__": 11 357 | }, 358 | { 359 | "__id__": 12 360 | } 361 | ], 362 | "_prefab": { 363 | "__id__": 14 364 | }, 365 | "_id": "", 366 | "_opacity": 255, 367 | "_color": { 368 | "__type__": "cc.Color", 369 | "r": 255, 370 | "g": 255, 371 | "b": 255, 372 | "a": 255 373 | }, 374 | "_cascadeOpacityEnabled": true, 375 | "_anchorPoint": { 376 | "__type__": "cc.Vec2", 377 | "x": 0.5, 378 | "y": 0.5 379 | }, 380 | "_contentSize": { 381 | "__type__": "cc.Size", 382 | "width": 93, 383 | "height": 114 384 | }, 385 | "_skewX": 0, 386 | "_skewY": 0, 387 | "_localZOrder": 0, 388 | "_globalZOrder": 0, 389 | "_opacityModifyRGB": false, 390 | "groupIndex": 0, 391 | "_trs": { 392 | "__type__": "TypedArray", 393 | "ctor": "Float64Array", 394 | "array": [ 395 | 0, 396 | -100, 397 | 0, 398 | 0, 399 | 0, 400 | 0, 401 | 1, 402 | 1, 403 | 1, 404 | 1 405 | ] 406 | } 407 | }, 408 | { 409 | "__type__": "cc.Sprite", 410 | "_name": "", 411 | "_objFlags": 0, 412 | "node": { 413 | "__id__": 10 414 | }, 415 | "_enabled": true, 416 | "_spriteFrame": { 417 | "__uuid__": "fd63c30b-0997-4ca6-a1c3-ea822cdb6426" 418 | }, 419 | "_type": 1, 420 | "_sizeMode": 0, 421 | "_fillType": 0, 422 | "_fillCenter": { 423 | "__type__": "cc.Vec2", 424 | "x": 0, 425 | "y": 0 426 | }, 427 | "_fillStart": 0, 428 | "_fillRange": 0, 429 | "_isTrimmedMode": true, 430 | "_srcBlendFactor": 770, 431 | "_dstBlendFactor": 771, 432 | "_atlas": null 433 | }, 434 | { 435 | "__type__": "cc.Button", 436 | "_name": "", 437 | "_objFlags": 0, 438 | "node": { 439 | "__id__": 10 440 | }, 441 | "_enabled": true, 442 | "transition": 2, 443 | "pressedColor": { 444 | "__type__": "cc.Color", 445 | "r": 255, 446 | "g": 255, 447 | "b": 255, 448 | "a": 255 449 | }, 450 | "hoverColor": { 451 | "__type__": "cc.Color", 452 | "r": 255, 453 | "g": 255, 454 | "b": 255, 455 | "a": 255 456 | }, 457 | "duration": 0.1, 458 | "zoomScale": 1.2, 459 | "pressedSprite": null, 460 | "hoverSprite": null, 461 | "clickEvents": [ 462 | { 463 | "__id__": 13 464 | } 465 | ], 466 | "_N$interactable": true, 467 | "_N$enableAutoGrayEffect": false, 468 | "_N$normalColor": { 469 | "__type__": "cc.Color", 470 | "r": 255, 471 | "g": 255, 472 | "b": 255, 473 | "a": 255 474 | }, 475 | "_N$disabledColor": { 476 | "__type__": "cc.Color", 477 | "r": 255, 478 | "g": 255, 479 | "b": 255, 480 | "a": 255 481 | }, 482 | "_N$normalSprite": { 483 | "__uuid__": "fd63c30b-0997-4ca6-a1c3-ea822cdb6426" 484 | }, 485 | "_N$disabledSprite": null, 486 | "_N$target": { 487 | "__id__": 10 488 | } 489 | }, 490 | { 491 | "__type__": "cc.ClickEvent", 492 | "target": { 493 | "__id__": 1 494 | }, 495 | "component": "build-menu", 496 | "handler": "buttonClick", 497 | "customEventData": "1" 498 | }, 499 | { 500 | "__type__": "cc.PrefabInfo", 501 | "root": { 502 | "__id__": 1 503 | }, 504 | "asset": { 505 | "__uuid__": "661f2662-c7bd-43a8-bfca-8a65487b3a58" 506 | }, 507 | "fileId": "e2lC2IB/NE+rtDZ6hLhhU+", 508 | "sync": false 509 | }, 510 | { 511 | "__type__": "40d7fL4Bj1BFbiR1xYsLV0q", 512 | "_name": "", 513 | "_objFlags": 0, 514 | "node": { 515 | "__id__": 1 516 | }, 517 | "_enabled": true 518 | }, 519 | { 520 | "__type__": "cc.PrefabInfo", 521 | "root": { 522 | "__id__": 1 523 | }, 524 | "asset": { 525 | "__uuid__": "661f2662-c7bd-43a8-bfca-8a65487b3a58" 526 | }, 527 | "fileId": "69TYfVTWBNjp8+MSgPMhfL", 528 | "sync": false 529 | } 530 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/build_menu.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "661f2662-c7bd-43a8-bfca-8a65487b3a58", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/bullet.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "bullet", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | } 20 | ], 21 | "_tag": -1, 22 | "_active": true, 23 | "_components": [ 24 | { 25 | "__id__": 5 26 | } 27 | ], 28 | "_prefab": { 29 | "__id__": 6 30 | }, 31 | "_id": "", 32 | "_opacity": 255, 33 | "_color": { 34 | "__type__": "cc.Color", 35 | "r": 255, 36 | "g": 255, 37 | "b": 255, 38 | "a": 255 39 | }, 40 | "_cascadeOpacityEnabled": true, 41 | "_anchorPoint": { 42 | "__type__": "cc.Vec2", 43 | "x": 0.5, 44 | "y": 0.5 45 | }, 46 | "_contentSize": { 47 | "__type__": "cc.Size", 48 | "width": 0, 49 | "height": 0 50 | }, 51 | "_skewX": 0, 52 | "_skewY": 0, 53 | "_localZOrder": 0, 54 | "_globalZOrder": 0, 55 | "_opacityModifyRGB": false, 56 | "groupIndex": 0, 57 | "_trs": { 58 | "__type__": "TypedArray", 59 | "ctor": "Float64Array", 60 | "array": [ 61 | 0, 62 | 0, 63 | 0, 64 | 0, 65 | 0, 66 | 0, 67 | 1, 68 | 1, 69 | 1, 70 | 1 71 | ] 72 | } 73 | }, 74 | { 75 | "__type__": "cc.Node", 76 | "_name": "塔防_20", 77 | "_objFlags": 0, 78 | "_parent": { 79 | "__id__": 1 80 | }, 81 | "_children": [], 82 | "_tag": -1, 83 | "_active": true, 84 | "_components": [ 85 | { 86 | "__id__": 3 87 | } 88 | ], 89 | "_prefab": { 90 | "__id__": 4 91 | }, 92 | "_id": "", 93 | "_opacity": 255, 94 | "_color": { 95 | "__type__": "cc.Color", 96 | "r": 255, 97 | "g": 255, 98 | "b": 255, 99 | "a": 255 100 | }, 101 | "_cascadeOpacityEnabled": true, 102 | "_anchorPoint": { 103 | "__type__": "cc.Vec2", 104 | "x": 0.5, 105 | "y": 0.5 106 | }, 107 | "_contentSize": { 108 | "__type__": "cc.Size", 109 | "width": 33, 110 | "height": 62 111 | }, 112 | "_skewX": 0, 113 | "_skewY": 0, 114 | "_localZOrder": 0, 115 | "_globalZOrder": 0, 116 | "_opacityModifyRGB": false, 117 | "groupIndex": 0, 118 | "_trs": { 119 | "__type__": "TypedArray", 120 | "ctor": "Float64Array", 121 | "array": [ 122 | 0, 123 | 0, 124 | 0, 125 | 0, 126 | 0, 127 | 0, 128 | 1, 129 | 1, 130 | 1, 131 | 1 132 | ] 133 | } 134 | }, 135 | { 136 | "__type__": "cc.Sprite", 137 | "_name": "", 138 | "_objFlags": 0, 139 | "node": { 140 | "__id__": 2 141 | }, 142 | "_enabled": true, 143 | "_spriteFrame": { 144 | "__uuid__": "62a324bc-3380-4d92-8490-4f8c2af3f428" 145 | }, 146 | "_type": 0, 147 | "_sizeMode": 1, 148 | "_fillType": 0, 149 | "_fillCenter": { 150 | "__type__": "cc.Vec2", 151 | "x": 0, 152 | "y": 0 153 | }, 154 | "_fillStart": 0, 155 | "_fillRange": 0, 156 | "_isTrimmedMode": true, 157 | "_srcBlendFactor": 770, 158 | "_dstBlendFactor": 771, 159 | "_atlas": null 160 | }, 161 | { 162 | "__type__": "cc.PrefabInfo", 163 | "root": { 164 | "__id__": 1 165 | }, 166 | "asset": { 167 | "__uuid__": "c3c896d7-b64e-4bf8-b30d-5bd7d272f87a" 168 | }, 169 | "fileId": "43oFArCT9A7r/fL3vn8VBs", 170 | "sync": false 171 | }, 172 | { 173 | "__type__": "cb686vmiVhEr6fiN+I6qnqM", 174 | "_name": "", 175 | "_objFlags": 0, 176 | "node": { 177 | "__id__": 1 178 | }, 179 | "_enabled": true 180 | }, 181 | { 182 | "__type__": "cc.PrefabInfo", 183 | "root": { 184 | "__id__": 1 185 | }, 186 | "asset": { 187 | "__uuid__": "c3c896d7-b64e-4bf8-b30d-5bd7d272f87a" 188 | }, 189 | "fileId": "e2flD35E9Hmaa2RUQPpaTB", 190 | "sync": false 191 | } 192 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/bullet.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "c3c896d7-b64e-4bf8-b30d-5bd7d272f87a", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/enemy.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "enemy", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | }, 20 | { 21 | "__id__": 5 22 | } 23 | ], 24 | "_tag": -1, 25 | "_active": true, 26 | "_components": [ 27 | { 28 | "__id__": 12 29 | } 30 | ], 31 | "_prefab": { 32 | "__id__": 13 33 | }, 34 | "_id": "", 35 | "_opacity": 255, 36 | "_color": { 37 | "__type__": "cc.Color", 38 | "r": 255, 39 | "g": 255, 40 | "b": 255, 41 | "a": 255 42 | }, 43 | "_cascadeOpacityEnabled": true, 44 | "_anchorPoint": { 45 | "__type__": "cc.Vec2", 46 | "x": 0.5, 47 | "y": 0.5 48 | }, 49 | "_contentSize": { 50 | "__type__": "cc.Size", 51 | "width": 100, 52 | "height": 100 53 | }, 54 | "_skewX": 0, 55 | "_skewY": 0, 56 | "_localZOrder": 0, 57 | "_globalZOrder": 0, 58 | "_opacityModifyRGB": false, 59 | "groupIndex": 0, 60 | "_trs": { 61 | "__type__": "TypedArray", 62 | "ctor": "Float64Array", 63 | "array": [ 64 | 0, 65 | 0, 66 | 0, 67 | 0, 68 | 0, 69 | 0, 70 | 1, 71 | 1, 72 | 1, 73 | 1 74 | ] 75 | } 76 | }, 77 | { 78 | "__type__": "cc.Node", 79 | "_name": "sprite", 80 | "_objFlags": 0, 81 | "_parent": { 82 | "__id__": 1 83 | }, 84 | "_children": [], 85 | "_tag": -1, 86 | "_active": true, 87 | "_components": [ 88 | { 89 | "__id__": 3 90 | } 91 | ], 92 | "_prefab": { 93 | "__id__": 4 94 | }, 95 | "_id": "", 96 | "_opacity": 255, 97 | "_color": { 98 | "__type__": "cc.Color", 99 | "r": 255, 100 | "g": 255, 101 | "b": 255, 102 | "a": 255 103 | }, 104 | "_cascadeOpacityEnabled": true, 105 | "_anchorPoint": { 106 | "__type__": "cc.Vec2", 107 | "x": 0.5, 108 | "y": 0.5 109 | }, 110 | "_contentSize": { 111 | "__type__": "cc.Size", 112 | "width": 40, 113 | "height": 36 114 | }, 115 | "_skewX": 0, 116 | "_skewY": 0, 117 | "_localZOrder": 0, 118 | "_globalZOrder": 0, 119 | "_opacityModifyRGB": false, 120 | "groupIndex": 0, 121 | "_trs": { 122 | "__type__": "TypedArray", 123 | "ctor": "Float64Array", 124 | "array": [ 125 | 0, 126 | 0, 127 | 0, 128 | 0, 129 | 0, 130 | 0, 131 | 1, 132 | 1, 133 | 1, 134 | 1 135 | ] 136 | } 137 | }, 138 | { 139 | "__type__": "cc.Sprite", 140 | "_name": "", 141 | "_objFlags": 0, 142 | "node": { 143 | "__id__": 2 144 | }, 145 | "_enabled": true, 146 | "_spriteFrame": null, 147 | "_type": 0, 148 | "_sizeMode": 1, 149 | "_fillType": 0, 150 | "_fillCenter": { 151 | "__type__": "cc.Vec2", 152 | "x": 0, 153 | "y": 0 154 | }, 155 | "_fillStart": 0, 156 | "_fillRange": 0, 157 | "_isTrimmedMode": true, 158 | "_srcBlendFactor": 770, 159 | "_dstBlendFactor": 771, 160 | "_atlas": null 161 | }, 162 | { 163 | "__type__": "cc.PrefabInfo", 164 | "root": { 165 | "__id__": 1 166 | }, 167 | "asset": { 168 | "__uuid__": "7deaee16-f3af-4ba6-9946-5d399e5a6b33" 169 | }, 170 | "fileId": "e2OYJVDiNPUK/uFcV4AHBC", 171 | "sync": false 172 | }, 173 | { 174 | "__type__": "cc.Node", 175 | "_name": "health_progress_bar", 176 | "_objFlags": 0, 177 | "_parent": { 178 | "__id__": 1 179 | }, 180 | "_children": [ 181 | { 182 | "__id__": 6 183 | } 184 | ], 185 | "_tag": -1, 186 | "_active": true, 187 | "_components": [ 188 | { 189 | "__id__": 9 190 | }, 191 | { 192 | "__id__": 10 193 | } 194 | ], 195 | "_prefab": { 196 | "__id__": 11 197 | }, 198 | "_id": "", 199 | "_opacity": 255, 200 | "_color": { 201 | "__type__": "cc.Color", 202 | "r": 255, 203 | "g": 255, 204 | "b": 255, 205 | "a": 255 206 | }, 207 | "_cascadeOpacityEnabled": true, 208 | "_anchorPoint": { 209 | "__type__": "cc.Vec2", 210 | "x": 0.5, 211 | "y": 0.5 212 | }, 213 | "_contentSize": { 214 | "__type__": "cc.Size", 215 | "width": 100, 216 | "height": 15 217 | }, 218 | "_skewX": 0, 219 | "_skewY": 0, 220 | "_localZOrder": 0, 221 | "_globalZOrder": 0, 222 | "_opacityModifyRGB": false, 223 | "groupIndex": 0, 224 | "_trs": { 225 | "__type__": "TypedArray", 226 | "ctor": "Float64Array", 227 | "array": [ 228 | 0, 229 | 41.5, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 1, 235 | 1, 236 | 1, 237 | 1 238 | ] 239 | } 240 | }, 241 | { 242 | "__type__": "cc.Node", 243 | "_name": "bar", 244 | "_objFlags": 0, 245 | "_parent": { 246 | "__id__": 5 247 | }, 248 | "_children": [], 249 | "_tag": -1, 250 | "_active": true, 251 | "_components": [ 252 | { 253 | "__id__": 7 254 | } 255 | ], 256 | "_prefab": { 257 | "__id__": 8 258 | }, 259 | "_id": "", 260 | "_opacity": 255, 261 | "_color": { 262 | "__type__": "cc.Color", 263 | "r": 255, 264 | "g": 255, 265 | "b": 255, 266 | "a": 255 267 | }, 268 | "_cascadeOpacityEnabled": true, 269 | "_anchorPoint": { 270 | "__type__": "cc.Vec2", 271 | "x": 0, 272 | "y": 0.5 273 | }, 274 | "_contentSize": { 275 | "__type__": "cc.Size", 276 | "width": 0, 277 | "height": 15 278 | }, 279 | "_skewX": 0, 280 | "_skewY": 0, 281 | "_localZOrder": 0, 282 | "_globalZOrder": 0, 283 | "_opacityModifyRGB": false, 284 | "groupIndex": 0, 285 | "_trs": { 286 | "__type__": "TypedArray", 287 | "ctor": "Float64Array", 288 | "array": [ 289 | -50, 290 | 0, 291 | 0, 292 | 0, 293 | 0, 294 | 0, 295 | 1, 296 | 1, 297 | 1, 298 | 1 299 | ] 300 | } 301 | }, 302 | { 303 | "__type__": "cc.Sprite", 304 | "_name": "", 305 | "_objFlags": 0, 306 | "node": { 307 | "__id__": 6 308 | }, 309 | "_enabled": true, 310 | "_spriteFrame": { 311 | "__uuid__": "0c20013e-2278-4aee-a946-b1379b5e6ec8" 312 | }, 313 | "_type": 1, 314 | "_sizeMode": 0, 315 | "_fillType": 0, 316 | "_fillCenter": { 317 | "__type__": "cc.Vec2", 318 | "x": 0, 319 | "y": 0 320 | }, 321 | "_fillStart": 0, 322 | "_fillRange": 0, 323 | "_isTrimmedMode": true, 324 | "_srcBlendFactor": 770, 325 | "_dstBlendFactor": 771, 326 | "_atlas": null 327 | }, 328 | { 329 | "__type__": "cc.PrefabInfo", 330 | "root": { 331 | "__id__": 1 332 | }, 333 | "asset": { 334 | "__uuid__": "7deaee16-f3af-4ba6-9946-5d399e5a6b33" 335 | }, 336 | "fileId": "38d28QPqAdC1L4aQLAAwhV2", 337 | "sync": false 338 | }, 339 | { 340 | "__type__": "cc.Sprite", 341 | "_name": "", 342 | "_objFlags": 0, 343 | "node": { 344 | "__id__": 5 345 | }, 346 | "_enabled": true, 347 | "_spriteFrame": { 348 | "__uuid__": "88e79fd5-96b4-4a77-a1f4-312467171014" 349 | }, 350 | "_type": 0, 351 | "_sizeMode": 0, 352 | "_fillType": 0, 353 | "_fillCenter": { 354 | "__type__": "cc.Vec2", 355 | "x": 0, 356 | "y": 0 357 | }, 358 | "_fillStart": 0, 359 | "_fillRange": 0, 360 | "_isTrimmedMode": true, 361 | "_srcBlendFactor": 770, 362 | "_dstBlendFactor": 771, 363 | "_atlas": null 364 | }, 365 | { 366 | "__type__": "cc.ProgressBar", 367 | "_name": "", 368 | "_objFlags": 0, 369 | "node": { 370 | "__id__": 5 371 | }, 372 | "_enabled": true, 373 | "_N$totalLength": 100, 374 | "_N$barSprite": { 375 | "__id__": 7 376 | }, 377 | "_N$mode": 0, 378 | "_N$progress": 0, 379 | "_N$reverse": false 380 | }, 381 | { 382 | "__type__": "cc.PrefabInfo", 383 | "root": { 384 | "__id__": 1 385 | }, 386 | "asset": { 387 | "__uuid__": "7deaee16-f3af-4ba6-9946-5d399e5a6b33" 388 | }, 389 | "fileId": "c8bd6EVT6lD4bVMS1d/i0BC", 390 | "sync": false 391 | }, 392 | { 393 | "__type__": "f3c07aFDhNIzZdeNQ7egnCL", 394 | "_name": "", 395 | "_objFlags": 0, 396 | "node": { 397 | "__id__": 1 398 | }, 399 | "_enabled": true, 400 | "spriteFrames": [ 401 | { 402 | "__uuid__": "1660ffbd-3bd4-4ae6-b5e1-ffa65adef4f1" 403 | }, 404 | { 405 | "__uuid__": "fc9995aa-f78c-4eb8-9d6e-8195d53394b2" 406 | }, 407 | { 408 | "__uuid__": "6e70a99f-8eea-4df3-a849-9c57506269be" 409 | }, 410 | { 411 | "__uuid__": "10f546c8-a49c-4c24-978b-da11d773937c" 412 | }, 413 | { 414 | "__uuid__": "ff5a4b68-6790-4deb-bdc7-64e463c4baef" 415 | }, 416 | { 417 | "__uuid__": "ff37b2e8-93f8-4d69-bb6e-dcdbaa3e148f" 418 | }, 419 | { 420 | "__uuid__": "04eeae69-0df0-48d9-ba22-9f60de0bf424" 421 | } 422 | ], 423 | "spriteNode": { 424 | "__id__": 3 425 | }, 426 | "healthProgressBar": { 427 | "__id__": 10 428 | } 429 | }, 430 | { 431 | "__type__": "cc.PrefabInfo", 432 | "root": { 433 | "__id__": 1 434 | }, 435 | "asset": { 436 | "__uuid__": "7deaee16-f3af-4ba6-9946-5d399e5a6b33" 437 | }, 438 | "fileId": "96CAt/b9BOia8Rd0ggE1M6", 439 | "sync": false 440 | } 441 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/enemy.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "7deaee16-f3af-4ba6-9946-5d399e5a6b33", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/level_1.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "951917fe-3f44-4ab6-97cc-f3e880d17db8", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/tower_a.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "tower_a", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | } 20 | ], 21 | "_tag": -1, 22 | "_active": true, 23 | "_components": [ 24 | { 25 | "__id__": 5 26 | } 27 | ], 28 | "_prefab": { 29 | "__id__": 6 30 | }, 31 | "_id": "", 32 | "_opacity": 255, 33 | "_color": { 34 | "__type__": "cc.Color", 35 | "r": 255, 36 | "g": 255, 37 | "b": 255, 38 | "a": 255 39 | }, 40 | "_cascadeOpacityEnabled": true, 41 | "_anchorPoint": { 42 | "__type__": "cc.Vec2", 43 | "x": 0.5, 44 | "y": 0.5 45 | }, 46 | "_contentSize": { 47 | "__type__": "cc.Size", 48 | "width": 0, 49 | "height": 0 50 | }, 51 | "_skewX": 0, 52 | "_skewY": 0, 53 | "_localZOrder": 0, 54 | "_globalZOrder": 0, 55 | "_opacityModifyRGB": false, 56 | "groupIndex": 0, 57 | "_trs": { 58 | "__type__": "TypedArray", 59 | "ctor": "Float64Array", 60 | "array": [ 61 | 0, 62 | 0, 63 | 0, 64 | 0, 65 | 0, 66 | 0, 67 | 1, 68 | 1, 69 | 1, 70 | 1 71 | ] 72 | } 73 | }, 74 | { 75 | "__type__": "cc.Node", 76 | "_name": "sprite", 77 | "_objFlags": 0, 78 | "_parent": { 79 | "__id__": 1 80 | }, 81 | "_children": [], 82 | "_tag": -1, 83 | "_active": true, 84 | "_components": [ 85 | { 86 | "__id__": 3 87 | } 88 | ], 89 | "_prefab": { 90 | "__id__": 4 91 | }, 92 | "_id": "", 93 | "_opacity": 255, 94 | "_color": { 95 | "__type__": "cc.Color", 96 | "r": 255, 97 | "g": 255, 98 | "b": 255, 99 | "a": 255 100 | }, 101 | "_cascadeOpacityEnabled": true, 102 | "_anchorPoint": { 103 | "__type__": "cc.Vec2", 104 | "x": 0.5, 105 | "y": 0.5 106 | }, 107 | "_contentSize": { 108 | "__type__": "cc.Size", 109 | "width": 93, 110 | "height": 114 111 | }, 112 | "_skewX": 0, 113 | "_skewY": 0, 114 | "_localZOrder": 0, 115 | "_globalZOrder": 0, 116 | "_opacityModifyRGB": false, 117 | "groupIndex": 0, 118 | "_trs": { 119 | "__type__": "TypedArray", 120 | "ctor": "Float64Array", 121 | "array": [ 122 | 0, 123 | 10, 124 | 0, 125 | 0, 126 | 0, 127 | 0, 128 | 1, 129 | 1, 130 | 1, 131 | 1 132 | ] 133 | } 134 | }, 135 | { 136 | "__type__": "cc.Sprite", 137 | "_name": "", 138 | "_objFlags": 0, 139 | "node": { 140 | "__id__": 2 141 | }, 142 | "_enabled": true, 143 | "_spriteFrame": { 144 | "__uuid__": "d1befbbf-e943-47a2-946d-488f68b62422" 145 | }, 146 | "_type": 0, 147 | "_sizeMode": 1, 148 | "_fillType": 0, 149 | "_fillCenter": { 150 | "__type__": "cc.Vec2", 151 | "x": 0, 152 | "y": 0 153 | }, 154 | "_fillStart": 0, 155 | "_fillRange": 0, 156 | "_isTrimmedMode": true, 157 | "_srcBlendFactor": 770, 158 | "_dstBlendFactor": 771, 159 | "_atlas": null 160 | }, 161 | { 162 | "__type__": "cc.PrefabInfo", 163 | "root": { 164 | "__id__": 1 165 | }, 166 | "asset": { 167 | "__uuid__": "2f16dc47-f997-4c86-a261-bcbe53e74d50" 168 | }, 169 | "fileId": "3dJ8bYj6NFq6Zt3dYax3uH", 170 | "sync": false 171 | }, 172 | { 173 | "__type__": "25898yctLdIXIyfTz0KPTC4", 174 | "_name": "", 175 | "_objFlags": 0, 176 | "node": { 177 | "__id__": 1 178 | }, 179 | "_enabled": true, 180 | "spriteFrames": [ 181 | { 182 | "__uuid__": "d1befbbf-e943-47a2-946d-488f68b62422" 183 | }, 184 | { 185 | "__uuid__": "98a89f27-5e7e-4b98-bbfc-cf4945037728" 186 | }, 187 | { 188 | "__uuid__": "f9fa18d3-2519-4f9b-8960-10d21f20e416" 189 | } 190 | ], 191 | "spriteNode": { 192 | "__id__": 3 193 | }, 194 | "towerType": "tower_a" 195 | }, 196 | { 197 | "__type__": "cc.PrefabInfo", 198 | "root": { 199 | "__id__": 1 200 | }, 201 | "asset": { 202 | "__uuid__": "2f16dc47-f997-4c86-a261-bcbe53e74d50" 203 | }, 204 | "fileId": "7ekGc12KBO7ZE7XSkJBhEv", 205 | "sync": false 206 | } 207 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/tower_a.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "2f16dc47-f997-4c86-a261-bcbe53e74d50", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/tower_b.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "tower_b", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | } 20 | ], 21 | "_tag": -1, 22 | "_active": true, 23 | "_components": [ 24 | { 25 | "__id__": 5 26 | } 27 | ], 28 | "_prefab": { 29 | "__id__": 6 30 | }, 31 | "_id": "", 32 | "_opacity": 255, 33 | "_color": { 34 | "__type__": "cc.Color", 35 | "r": 255, 36 | "g": 255, 37 | "b": 255, 38 | "a": 255 39 | }, 40 | "_cascadeOpacityEnabled": true, 41 | "_anchorPoint": { 42 | "__type__": "cc.Vec2", 43 | "x": 0.5, 44 | "y": 0.5 45 | }, 46 | "_contentSize": { 47 | "__type__": "cc.Size", 48 | "width": 0, 49 | "height": 0 50 | }, 51 | "_skewX": 0, 52 | "_skewY": 0, 53 | "_localZOrder": 0, 54 | "_globalZOrder": 0, 55 | "_opacityModifyRGB": false, 56 | "groupIndex": 0, 57 | "_trs": { 58 | "__type__": "TypedArray", 59 | "ctor": "Float64Array", 60 | "array": [ 61 | 0, 62 | 0, 63 | 0, 64 | 0, 65 | 0, 66 | 0, 67 | 1, 68 | 1, 69 | 1, 70 | 1 71 | ] 72 | } 73 | }, 74 | { 75 | "__type__": "cc.Node", 76 | "_name": "sprite", 77 | "_objFlags": 0, 78 | "_parent": { 79 | "__id__": 1 80 | }, 81 | "_children": [], 82 | "_tag": -1, 83 | "_active": true, 84 | "_components": [ 85 | { 86 | "__id__": 3 87 | } 88 | ], 89 | "_prefab": { 90 | "__id__": 4 91 | }, 92 | "_id": "", 93 | "_opacity": 255, 94 | "_color": { 95 | "__type__": "cc.Color", 96 | "r": 255, 97 | "g": 255, 98 | "b": 255, 99 | "a": 255 100 | }, 101 | "_cascadeOpacityEnabled": true, 102 | "_anchorPoint": { 103 | "__type__": "cc.Vec2", 104 | "x": 0.5, 105 | "y": 0.5 106 | }, 107 | "_contentSize": { 108 | "__type__": "cc.Size", 109 | "width": 93, 110 | "height": 114 111 | }, 112 | "_skewX": 0, 113 | "_skewY": 0, 114 | "_localZOrder": 0, 115 | "_globalZOrder": 0, 116 | "_opacityModifyRGB": false, 117 | "groupIndex": 0, 118 | "_trs": { 119 | "__type__": "TypedArray", 120 | "ctor": "Float64Array", 121 | "array": [ 122 | 0, 123 | 10, 124 | 0, 125 | 0, 126 | 0, 127 | 0, 128 | 1, 129 | 1, 130 | 1, 131 | 1 132 | ] 133 | } 134 | }, 135 | { 136 | "__type__": "cc.Sprite", 137 | "_name": "", 138 | "_objFlags": 0, 139 | "node": { 140 | "__id__": 2 141 | }, 142 | "_enabled": true, 143 | "_spriteFrame": { 144 | "__uuid__": "fd63c30b-0997-4ca6-a1c3-ea822cdb6426" 145 | }, 146 | "_type": 0, 147 | "_sizeMode": 1, 148 | "_fillType": 0, 149 | "_fillCenter": { 150 | "__type__": "cc.Vec2", 151 | "x": 0, 152 | "y": 0 153 | }, 154 | "_fillStart": 0, 155 | "_fillRange": 0, 156 | "_isTrimmedMode": true, 157 | "_srcBlendFactor": 770, 158 | "_dstBlendFactor": 771, 159 | "_atlas": null 160 | }, 161 | { 162 | "__type__": "cc.PrefabInfo", 163 | "root": { 164 | "__id__": 1 165 | }, 166 | "asset": { 167 | "__uuid__": "fa0fba83-0486-4490-bcfe-ba624beb1c4c" 168 | }, 169 | "fileId": "88LDex3rVAh4OVUFwexU7g", 170 | "sync": false 171 | }, 172 | { 173 | "__type__": "25898yctLdIXIyfTz0KPTC4", 174 | "_name": "", 175 | "_objFlags": 0, 176 | "node": { 177 | "__id__": 1 178 | }, 179 | "_enabled": true, 180 | "spriteFrames": [ 181 | { 182 | "__uuid__": "fd63c30b-0997-4ca6-a1c3-ea822cdb6426" 183 | }, 184 | { 185 | "__uuid__": "86699686-0d08-435a-8bbf-c655be95febe" 186 | }, 187 | { 188 | "__uuid__": "bf14fda5-b116-4513-955a-a14f92c0d656" 189 | } 190 | ], 191 | "spriteNode": { 192 | "__id__": 3 193 | }, 194 | "towerType": "tower_b" 195 | }, 196 | { 197 | "__type__": "cc.PrefabInfo", 198 | "root": { 199 | "__id__": 1 200 | }, 201 | "asset": { 202 | "__uuid__": "fa0fba83-0486-4490-bcfe-ba624beb1c4c" 203 | }, 204 | "fileId": "dde7Hf4BVDe5ItU93Yb3GI", 205 | "sync": false 206 | } 207 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/tower_b.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "fa0fba83-0486-4490-bcfe-ba624beb1c4c", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/update_menu.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "update_menu", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | }, 20 | { 21 | "__id__": 5 22 | }, 23 | { 24 | "__id__": 10 25 | } 26 | ], 27 | "_tag": -1, 28 | "_active": true, 29 | "_components": [ 30 | { 31 | "__id__": 15 32 | } 33 | ], 34 | "_prefab": { 35 | "__id__": 16 36 | }, 37 | "_id": "", 38 | "_opacity": 255, 39 | "_color": { 40 | "__type__": "cc.Color", 41 | "r": 255, 42 | "g": 255, 43 | "b": 255, 44 | "a": 255 45 | }, 46 | "_cascadeOpacityEnabled": true, 47 | "_anchorPoint": { 48 | "__type__": "cc.Vec2", 49 | "x": 0.5, 50 | "y": 0.5 51 | }, 52 | "_contentSize": { 53 | "__type__": "cc.Size", 54 | "width": 0, 55 | "height": 0 56 | }, 57 | "_skewX": 0, 58 | "_skewY": 0, 59 | "_localZOrder": 0, 60 | "_globalZOrder": 0, 61 | "_opacityModifyRGB": false, 62 | "groupIndex": 0, 63 | "_trs": { 64 | "__type__": "TypedArray", 65 | "ctor": "Float64Array", 66 | "array": [ 67 | 0, 68 | 2, 69 | 0, 70 | 0, 71 | 0, 72 | 0, 73 | 1, 74 | 1, 75 | 1, 76 | 1 77 | ] 78 | } 79 | }, 80 | { 81 | "__type__": "cc.Node", 82 | "_name": "塔防_45", 83 | "_objFlags": 0, 84 | "_parent": { 85 | "__id__": 1 86 | }, 87 | "_children": [], 88 | "_tag": -1, 89 | "_active": true, 90 | "_components": [ 91 | { 92 | "__id__": 3 93 | } 94 | ], 95 | "_prefab": { 96 | "__id__": 4 97 | }, 98 | "_id": "", 99 | "_opacity": 255, 100 | "_color": { 101 | "__type__": "cc.Color", 102 | "r": 255, 103 | "g": 255, 104 | "b": 255, 105 | "a": 255 106 | }, 107 | "_cascadeOpacityEnabled": true, 108 | "_anchorPoint": { 109 | "__type__": "cc.Vec2", 110 | "x": 0.5, 111 | "y": 0.5 112 | }, 113 | "_contentSize": { 114 | "__type__": "cc.Size", 115 | "width": 320, 116 | "height": 320 117 | }, 118 | "_skewX": 0, 119 | "_skewY": 0, 120 | "_localZOrder": 0, 121 | "_globalZOrder": 0, 122 | "_opacityModifyRGB": false, 123 | "groupIndex": 0, 124 | "_trs": { 125 | "__type__": "TypedArray", 126 | "ctor": "Float64Array", 127 | "array": [ 128 | 0, 129 | 0, 130 | 0, 131 | 0, 132 | 0, 133 | 0, 134 | 1, 135 | 1, 136 | 1, 137 | 1 138 | ] 139 | } 140 | }, 141 | { 142 | "__type__": "cc.Sprite", 143 | "_name": "", 144 | "_objFlags": 0, 145 | "node": { 146 | "__id__": 2 147 | }, 148 | "_enabled": true, 149 | "_spriteFrame": { 150 | "__uuid__": "5c1a6ac5-5333-4b79-bf4a-f1f47f075723" 151 | }, 152 | "_type": 0, 153 | "_sizeMode": 1, 154 | "_fillType": 0, 155 | "_fillCenter": { 156 | "__type__": "cc.Vec2", 157 | "x": 0, 158 | "y": 0 159 | }, 160 | "_fillStart": 0, 161 | "_fillRange": 0, 162 | "_isTrimmedMode": true, 163 | "_srcBlendFactor": 770, 164 | "_dstBlendFactor": 771, 165 | "_atlas": null 166 | }, 167 | { 168 | "__type__": "cc.PrefabInfo", 169 | "root": { 170 | "__id__": 1 171 | }, 172 | "asset": { 173 | "__uuid__": "48ff2758-e2c7-4e72-af87-c35d40195c30" 174 | }, 175 | "fileId": "abq9c/gkNP5LMEuHRW6JEA", 176 | "sync": false 177 | }, 178 | { 179 | "__type__": "cc.Node", 180 | "_name": "塔防_137", 181 | "_objFlags": 0, 182 | "_parent": { 183 | "__id__": 1 184 | }, 185 | "_children": [], 186 | "_tag": -1, 187 | "_active": true, 188 | "_components": [ 189 | { 190 | "__id__": 6 191 | }, 192 | { 193 | "__id__": 7 194 | } 195 | ], 196 | "_prefab": { 197 | "__id__": 9 198 | }, 199 | "_id": "", 200 | "_opacity": 255, 201 | "_color": { 202 | "__type__": "cc.Color", 203 | "r": 255, 204 | "g": 255, 205 | "b": 255, 206 | "a": 255 207 | }, 208 | "_cascadeOpacityEnabled": true, 209 | "_anchorPoint": { 210 | "__type__": "cc.Vec2", 211 | "x": 0.5, 212 | "y": 0.5 213 | }, 214 | "_contentSize": { 215 | "__type__": "cc.Size", 216 | "width": 93, 217 | "height": 92 218 | }, 219 | "_skewX": 0, 220 | "_skewY": 0, 221 | "_localZOrder": 0, 222 | "_globalZOrder": 0, 223 | "_opacityModifyRGB": false, 224 | "groupIndex": 0, 225 | "_trs": { 226 | "__type__": "TypedArray", 227 | "ctor": "Float64Array", 228 | "array": [ 229 | 0, 230 | 100, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 1, 236 | 1, 237 | 1, 238 | 1 239 | ] 240 | } 241 | }, 242 | { 243 | "__type__": "cc.Sprite", 244 | "_name": "", 245 | "_objFlags": 0, 246 | "node": { 247 | "__id__": 5 248 | }, 249 | "_enabled": true, 250 | "_spriteFrame": { 251 | "__uuid__": "d58e6e82-65a7-457e-bed6-4bdf47040d00" 252 | }, 253 | "_type": 0, 254 | "_sizeMode": 1, 255 | "_fillType": 0, 256 | "_fillCenter": { 257 | "__type__": "cc.Vec2", 258 | "x": 0, 259 | "y": 0 260 | }, 261 | "_fillStart": 0, 262 | "_fillRange": 0, 263 | "_isTrimmedMode": true, 264 | "_srcBlendFactor": 770, 265 | "_dstBlendFactor": 771, 266 | "_atlas": null 267 | }, 268 | { 269 | "__type__": "cc.Button", 270 | "_name": "", 271 | "_objFlags": 0, 272 | "node": { 273 | "__id__": 5 274 | }, 275 | "_enabled": true, 276 | "transition": 0, 277 | "pressedColor": { 278 | "__type__": "cc.Color", 279 | "r": 211, 280 | "g": 211, 281 | "b": 211, 282 | "a": 255 283 | }, 284 | "hoverColor": { 285 | "__type__": "cc.Color", 286 | "r": 255, 287 | "g": 255, 288 | "b": 255, 289 | "a": 255 290 | }, 291 | "duration": 0.1, 292 | "zoomScale": 1.2, 293 | "pressedSprite": null, 294 | "hoverSprite": null, 295 | "clickEvents": [ 296 | { 297 | "__id__": 8 298 | } 299 | ], 300 | "_N$interactable": true, 301 | "_N$enableAutoGrayEffect": false, 302 | "_N$normalColor": { 303 | "__type__": "cc.Color", 304 | "r": 214, 305 | "g": 214, 306 | "b": 214, 307 | "a": 255 308 | }, 309 | "_N$disabledColor": { 310 | "__type__": "cc.Color", 311 | "r": 124, 312 | "g": 124, 313 | "b": 124, 314 | "a": 255 315 | }, 316 | "_N$normalSprite": null, 317 | "_N$disabledSprite": null, 318 | "_N$target": { 319 | "__id__": 5 320 | } 321 | }, 322 | { 323 | "__type__": "cc.ClickEvent", 324 | "target": { 325 | "__id__": 1 326 | }, 327 | "component": "update-menu", 328 | "handler": "buttonClick", 329 | "customEventData": "update" 330 | }, 331 | { 332 | "__type__": "cc.PrefabInfo", 333 | "root": { 334 | "__id__": 1 335 | }, 336 | "asset": { 337 | "__uuid__": "48ff2758-e2c7-4e72-af87-c35d40195c30" 338 | }, 339 | "fileId": "f0n8cNL2xMXKT6o8mIkEnh", 340 | "sync": false 341 | }, 342 | { 343 | "__type__": "cc.Node", 344 | "_name": "塔防_134", 345 | "_objFlags": 0, 346 | "_parent": { 347 | "__id__": 1 348 | }, 349 | "_children": [], 350 | "_tag": -1, 351 | "_active": true, 352 | "_components": [ 353 | { 354 | "__id__": 11 355 | }, 356 | { 357 | "__id__": 12 358 | } 359 | ], 360 | "_prefab": { 361 | "__id__": 14 362 | }, 363 | "_id": "", 364 | "_opacity": 255, 365 | "_color": { 366 | "__type__": "cc.Color", 367 | "r": 255, 368 | "g": 255, 369 | "b": 255, 370 | "a": 255 371 | }, 372 | "_cascadeOpacityEnabled": true, 373 | "_anchorPoint": { 374 | "__type__": "cc.Vec2", 375 | "x": 0.5, 376 | "y": 0.5 377 | }, 378 | "_contentSize": { 379 | "__type__": "cc.Size", 380 | "width": 93, 381 | "height": 93 382 | }, 383 | "_skewX": 0, 384 | "_skewY": 0, 385 | "_localZOrder": 0, 386 | "_globalZOrder": 0, 387 | "_opacityModifyRGB": false, 388 | "groupIndex": 0, 389 | "_trs": { 390 | "__type__": "TypedArray", 391 | "ctor": "Float64Array", 392 | "array": [ 393 | 0, 394 | -100, 395 | 0, 396 | 0, 397 | 0, 398 | 0, 399 | 1, 400 | 1, 401 | 1, 402 | 1 403 | ] 404 | } 405 | }, 406 | { 407 | "__type__": "cc.Sprite", 408 | "_name": "", 409 | "_objFlags": 0, 410 | "node": { 411 | "__id__": 10 412 | }, 413 | "_enabled": true, 414 | "_spriteFrame": { 415 | "__uuid__": "38873925-a07e-49e5-9df2-e497c34a106a" 416 | }, 417 | "_type": 0, 418 | "_sizeMode": 1, 419 | "_fillType": 0, 420 | "_fillCenter": { 421 | "__type__": "cc.Vec2", 422 | "x": 0, 423 | "y": 0 424 | }, 425 | "_fillStart": 0, 426 | "_fillRange": 0, 427 | "_isTrimmedMode": true, 428 | "_srcBlendFactor": 770, 429 | "_dstBlendFactor": 771, 430 | "_atlas": null 431 | }, 432 | { 433 | "__type__": "cc.Button", 434 | "_name": "", 435 | "_objFlags": 0, 436 | "node": { 437 | "__id__": 10 438 | }, 439 | "_enabled": true, 440 | "transition": 0, 441 | "pressedColor": { 442 | "__type__": "cc.Color", 443 | "r": 211, 444 | "g": 211, 445 | "b": 211, 446 | "a": 255 447 | }, 448 | "hoverColor": { 449 | "__type__": "cc.Color", 450 | "r": 255, 451 | "g": 255, 452 | "b": 255, 453 | "a": 255 454 | }, 455 | "duration": 0.1, 456 | "zoomScale": 1.2, 457 | "pressedSprite": null, 458 | "hoverSprite": null, 459 | "clickEvents": [ 460 | { 461 | "__id__": 13 462 | } 463 | ], 464 | "_N$interactable": true, 465 | "_N$enableAutoGrayEffect": false, 466 | "_N$normalColor": { 467 | "__type__": "cc.Color", 468 | "r": 214, 469 | "g": 214, 470 | "b": 214, 471 | "a": 255 472 | }, 473 | "_N$disabledColor": { 474 | "__type__": "cc.Color", 475 | "r": 124, 476 | "g": 124, 477 | "b": 124, 478 | "a": 255 479 | }, 480 | "_N$normalSprite": null, 481 | "_N$disabledSprite": null, 482 | "_N$target": { 483 | "__id__": 10 484 | } 485 | }, 486 | { 487 | "__type__": "cc.ClickEvent", 488 | "target": { 489 | "__id__": 1 490 | }, 491 | "component": "update-menu", 492 | "handler": "buttonClick", 493 | "customEventData": "sell" 494 | }, 495 | { 496 | "__type__": "cc.PrefabInfo", 497 | "root": { 498 | "__id__": 1 499 | }, 500 | "asset": { 501 | "__uuid__": "48ff2758-e2c7-4e72-af87-c35d40195c30" 502 | }, 503 | "fileId": "d9QcDiRW1KVLLkiTfTyiE8", 504 | "sync": false 505 | }, 506 | { 507 | "__type__": "fbe03sjgMhN1LLzjDemZAtn", 508 | "_name": "", 509 | "_objFlags": 0, 510 | "node": { 511 | "__id__": 1 512 | }, 513 | "_enabled": true 514 | }, 515 | { 516 | "__type__": "cc.PrefabInfo", 517 | "root": { 518 | "__id__": 1 519 | }, 520 | "asset": { 521 | "__uuid__": "48ff2758-e2c7-4e72-af87-c35d40195c30" 522 | }, 523 | "fileId": "a9POU3ZeJFE7d4rHi609XF", 524 | "sync": false 525 | } 526 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/prefabs/update_menu.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "48ff2758-e2c7-4e72-af87-c35d40195c30", 4 | "optimizationPolicy": "AUTO", 5 | "asyncLoadAssets": false, 6 | "readonly": false, 7 | "subMetas": {} 8 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "22db39b6-ef13-4fef-a401-70faefeaa57b", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/beijing.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/beijing.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "a590c528-1984-48dc-ae34-ce00eac18005", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 1920, 11 | "height": 1080, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "beijing": { 15 | "ver": "1.0.4", 16 | "uuid": "c42bbaa9-dbab-4c59-9640-9c70bd4812eb", 17 | "rawTextureUuid": "a590c528-1984-48dc-ae34-ce00eac18005", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 1920, 26 | "height": 1080, 27 | "rawWidth": 1920, 28 | "rawHeight": 1080, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "596fbadc-3f77-4ad8-9a57-5d1067519aa9", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/level_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "level_1":{ 3 | "dt": 1, 4 | "waves": [ 5 | { 6 | "dt": 2, 7 | "type": 0, 8 | "count": 10 9 | }, 10 | { 11 | "dt": 3, 12 | "type": 1, 13 | "count": 10 14 | }, 15 | { 16 | "dt": 3, 17 | "type": 2, 18 | "count": 20 19 | }, 20 | { 21 | "dt": 4, 22 | "type": 3, 23 | "count": 10 24 | } 25 | ] 26 | } 27 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/level_config.json.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "aef1fa67-2112-4c55-9d9c-957811427e89", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/monster_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "enemy_0": { 3 | "speed": 50, 4 | "health": 2 5 | }, 6 | "enemy_1": { 7 | "speed": 50, 8 | "health": 4 9 | }, 10 | "enemy_2": { 11 | "speed": 60, 12 | "health": 4 13 | }, 14 | "enemy_3": { 15 | "speed": 40, 16 | "health": 10 17 | } 18 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/monster_config.json.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "896a8c3d-9266-4337-b950-118f8c1b4802", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/tower_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "tower_a": 3 | { 4 | "damages": [1, 2, 3], 5 | "attack_ranges": [200,250, 300], 6 | "look_range": 300, 7 | "shoot_dts": [0.5, 0.4 , 0.3] 8 | 9 | }, 10 | "tower_b": 11 | { 12 | "damages": [2,3,4], 13 | "attack_ranges": [250,300,350], 14 | "look_range": 400, 15 | "shoot_dts": [1, 0.8 , 0.6] 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/config/tower_config.json.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "8ab03036-6f6a-46df-aa65-19e39efc1d60", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_0.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_0.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "65832c03-6f5f-482c-b37e-c0af82b8b3db", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_0": { 15 | "ver": "1.0.4", 16 | "uuid": "1660ffbd-3bd4-4ae6-b5e1-ffa65adef4f1", 17 | "rawTextureUuid": "65832c03-6f5f-482c-b37e-c0af82b8b3db", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_1.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_1.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "26142159-f8b4-4e59-a971-97de50df9b61", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_1": { 15 | "ver": "1.0.4", 16 | "uuid": "fc9995aa-f78c-4eb8-9d6e-8195d53394b2", 17 | "rawTextureUuid": "26142159-f8b4-4e59-a971-97de50df9b61", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_2.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_2.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "abf5f5f9-d1f4-4b19-913c-e3e78718ecb5", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_2": { 15 | "ver": "1.0.4", 16 | "uuid": "6e70a99f-8eea-4df3-a849-9c57506269be", 17 | "rawTextureUuid": "abf5f5f9-d1f4-4b19-913c-e3e78718ecb5", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_3.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_3.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "cfc718a4-5864-41bc-8cc9-fa5a23857239", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_3": { 15 | "ver": "1.0.4", 16 | "uuid": "10f546c8-a49c-4c24-978b-da11d773937c", 17 | "rawTextureUuid": "cfc718a4-5864-41bc-8cc9-fa5a23857239", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_4.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_4.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "c4001fd6-4193-4b4d-a6a3-64bf1e219cd7", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_4": { 15 | "ver": "1.0.4", 16 | "uuid": "ff5a4b68-6790-4deb-bdc7-64e463c4baef", 17 | "rawTextureUuid": "c4001fd6-4193-4b4d-a6a3-64bf1e219cd7", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_5.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_5.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "494a9dc1-c379-4e38-b6b0-2504934c1fd4", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_5": { 15 | "ver": "1.0.4", 16 | "uuid": "ff37b2e8-93f8-4d69-bb6e-dcdbaa3e148f", 17 | "rawTextureUuid": "494a9dc1-c379-4e38-b6b0-2504934c1fd4", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/mash_room_6.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/mash_room_6.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "45745163-d24c-40c2-aa7b-1423533d004b", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 80, 11 | "height": 80, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "mash_room_6": { 15 | "ver": "1.0.4", 16 | "uuid": "04eeae69-0df0-48d9-ba22-9f60de0bf424", 17 | "rawTextureUuid": "45745163-d24c-40c2-aa7b-1423533d004b", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -6, 23 | "trimX": 8, 24 | "trimY": 16, 25 | "width": 64, 26 | "height": 60, 27 | "rawWidth": 80, 28 | "rawHeight": 80, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/progress_bar_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/progress_bar_red.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/progress_bar_red.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "89ac6819-877c-440c-a0a6-3e1c0aade57f", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 100, 11 | "height": 15, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "progress_bar_red": { 15 | "ver": "1.0.4", 16 | "uuid": "0c20013e-2278-4aee-a946-b1379b5e6ec8", 17 | "rawTextureUuid": "89ac6819-877c-440c-a0a6-3e1c0aade57f", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 100, 26 | "height": 15, 27 | "rawWidth": 100, 28 | "rawHeight": 15, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_03.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_03.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "4298f605-4bf4-4fac-b916-5653d1458b59", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_03": { 15 | "ver": "1.0.4", 16 | "uuid": "d1befbbf-e943-47a2-946d-488f68b62422", 17 | "rawTextureUuid": "4298f605-4bf4-4fac-b916-5653d1458b59", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_05.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_05.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "ef76d021-b8e1-48ab-98ad-3b04d5bf3614", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_05": { 15 | "ver": "1.0.4", 16 | "uuid": "98a89f27-5e7e-4b98-bbfc-cf4945037728", 17 | "rawTextureUuid": "ef76d021-b8e1-48ab-98ad-3b04d5bf3614", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_07.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_07.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "f593294a-12bf-426b-8308-281c57d40522", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_07": { 15 | "ver": "1.0.4", 16 | "uuid": "f9fa18d3-2519-4f9b-8960-10d21f20e416", 17 | "rawTextureUuid": "f593294a-12bf-426b-8308-281c57d40522", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_13.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_13.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "d660cd8f-8a63-499d-8dc7-b6eb311ef8aa", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_13": { 15 | "ver": "1.0.4", 16 | "uuid": "fd63c30b-0997-4ca6-a1c3-ea822cdb6426", 17 | "rawTextureUuid": "d660cd8f-8a63-499d-8dc7-b6eb311ef8aa", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_134.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_134.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "9551e080-dd46-41c9-a839-ec3a321babbf", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 94, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_134": { 15 | "ver": "1.0.4", 16 | "uuid": "38873925-a07e-49e5-9df2-e497c34a106a", 17 | "rawTextureUuid": "9551e080-dd46-41c9-a839-ec3a321babbf", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": -0.5, 23 | "trimX": 0, 24 | "trimY": 1, 25 | "width": 93, 26 | "height": 93, 27 | "rawWidth": 93, 28 | "rawHeight": 94, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_137.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_137.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "dee0c844-39e6-4763-a128-f396db5e25ff", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 93, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_137": { 15 | "ver": "1.0.4", 16 | "uuid": "d58e6e82-65a7-457e-bed6-4bdf47040d00", 17 | "rawTextureUuid": "dee0c844-39e6-4763-a128-f396db5e25ff", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0.5, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 92, 27 | "rawWidth": 93, 28 | "rawHeight": 93, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_15.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_15.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "ddc03488-9867-4a1a-a0af-498803c07182", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_15": { 15 | "ver": "1.0.4", 16 | "uuid": "86699686-0d08-435a-8bbf-c655be95febe", 17 | "rawTextureUuid": "ddc03488-9867-4a1a-a0af-498803c07182", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_17.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_17.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "7102702f-bdb4-4aec-b253-ad2985b5582f", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 114, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_17": { 15 | "ver": "1.0.4", 16 | "uuid": "bf14fda5-b116-4513-955a-a14f92c0d656", 17 | "rawTextureUuid": "7102702f-bdb4-4aec-b253-ad2985b5582f", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 114, 27 | "rawWidth": 93, 28 | "rawHeight": 114, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_20.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_20.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "268fdb68-0fce-46e1-938a-0d948a5e3c51", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 33, 11 | "height": 62, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_20": { 15 | "ver": "1.0.4", 16 | "uuid": "62a324bc-3380-4d92-8490-4f8c2af3f428", 17 | "rawTextureUuid": "268fdb68-0fce-46e1-938a-0d948a5e3c51", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 33, 26 | "height": 62, 27 | "rawWidth": 33, 28 | "rawHeight": 62, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_23.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_23.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "d5d75e5b-1aed-4322-a915-bcf2e02ed903", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 81, 11 | "height": 81, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_23": { 15 | "ver": "1.0.4", 16 | "uuid": "f43360fa-3ce4-4304-9ecb-f0c319f332ca", 17 | "rawTextureUuid": "d5d75e5b-1aed-4322-a915-bcf2e02ed903", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 81, 26 | "height": 81, 27 | "rawWidth": 81, 28 | "rawHeight": 81, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_31.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_31.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "6c0d619f-541c-4622-8834-0490ba42d784", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 81, 11 | "height": 81, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_31": { 15 | "ver": "1.0.4", 16 | "uuid": "6839be6f-4f0a-486f-bec2-d8a31fbac1e6", 17 | "rawTextureUuid": "6c0d619f-541c-4622-8834-0490ba42d784", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 81, 26 | "height": 81, 27 | "rawWidth": 81, 28 | "rawHeight": 81, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_34.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_34.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "35da72e3-a0e5-4c2f-9abf-17083fed9f15", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 93, 11 | "height": 93, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_34": { 15 | "ver": "1.0.4", 16 | "uuid": "3ecf6a4b-de5e-4712-8f98-780df90bb3de", 17 | "rawTextureUuid": "35da72e3-a0e5-4c2f-9abf-17083fed9f15", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 93, 26 | "height": 93, 27 | "rawWidth": 93, 28 | "rawHeight": 93, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_39.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_39.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "ba2cf1a1-ce68-41c5-a4df-f556671f0d4d", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 514, 11 | "height": 514, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_39": { 15 | "ver": "1.0.4", 16 | "uuid": "d6b43ad2-a670-4854-9811-9d1a01799ad1", 17 | "rawTextureUuid": "ba2cf1a1-ce68-41c5-a4df-f556671f0d4d", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 514, 26 | "height": 514, 27 | "rawWidth": 514, 28 | "rawHeight": 514, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_42.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_42.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "7c9b0269-58e4-47cb-ab4b-3ee94f3fe5fb", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 404, 11 | "height": 413, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_42": { 15 | "ver": "1.0.4", 16 | "uuid": "57b88c07-c98c-4fcb-8673-7f6a74cd7789", 17 | "rawTextureUuid": "7c9b0269-58e4-47cb-ab4b-3ee94f3fe5fb", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0.5, 23 | "trimX": 0, 24 | "trimY": 4, 25 | "width": 404, 26 | "height": 404, 27 | "rawWidth": 404, 28 | "rawHeight": 413, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_45.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_45.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "ac6c04b5-ddc6-4cf5-86ad-ceca88798c51", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 320, 11 | "height": 320, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_45": { 15 | "ver": "1.0.4", 16 | "uuid": "5c1a6ac5-5333-4b79-bf4a-f1f47f075723", 17 | "rawTextureUuid": "ac6c04b5-ddc6-4cf5-86ad-ceca88798c51", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 320, 26 | "height": 320, 27 | "rawWidth": 320, 28 | "rawHeight": 320, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence-toturial/assets/resources/塔防_48.png -------------------------------------------------------------------------------- /tower-defence-toturial/assets/resources/塔防_48.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "2.3.4", 3 | "uuid": "cd7dc801-0763-4fb7-bac9-9df78592dd48", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "premultiplyAlpha": false, 8 | "genMipmaps": false, 9 | "packable": true, 10 | "width": 81, 11 | "height": 82, 12 | "platformSettings": {}, 13 | "subMetas": { 14 | "塔防_48": { 15 | "ver": "1.0.4", 16 | "uuid": "69919845-922a-418a-af58-1b666e62cd31", 17 | "rawTextureUuid": "cd7dc801-0763-4fb7-bac9-9df78592dd48", 18 | "trimType": "auto", 19 | "trimThreshold": 1, 20 | "rotated": false, 21 | "offsetX": 0, 22 | "offsetY": 0.5, 23 | "trimX": 0, 24 | "trimY": 0, 25 | "width": 81, 26 | "height": 81, 27 | "rawWidth": 81, 28 | "rawHeight": 82, 29 | "borderTop": 0, 30 | "borderBottom": 0, 31 | "borderLeft": 0, 32 | "borderRight": 0, 33 | "subMetas": {} 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scenes.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "8656b472-207b-47cd-907a-84b66e8c7eb0", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scenes/game.fire: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.SceneAsset", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_native": "", 7 | "scene": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Scene", 13 | "_objFlags": 0, 14 | "_parent": null, 15 | "_children": [ 16 | { 17 | "__id__": 2 18 | } 19 | ], 20 | "_active": true, 21 | "_components": [], 22 | "_prefab": null, 23 | "_opacity": 255, 24 | "_color": { 25 | "__type__": "cc.Color", 26 | "r": 255, 27 | "g": 255, 28 | "b": 255, 29 | "a": 255 30 | }, 31 | "_contentSize": { 32 | "__type__": "cc.Size", 33 | "width": 0, 34 | "height": 0 35 | }, 36 | "_anchorPoint": { 37 | "__type__": "cc.Vec2", 38 | "x": 0, 39 | "y": 0 40 | }, 41 | "_trs": { 42 | "__type__": "TypedArray", 43 | "ctor": "Float64Array", 44 | "array": [ 45 | 0, 46 | 0, 47 | 0, 48 | 0, 49 | 0, 50 | 0, 51 | 1, 52 | 1, 53 | 1, 54 | 1 55 | ] 56 | }, 57 | "_is3DNode": true, 58 | "_groupIndex": 0, 59 | "groupIndex": 0, 60 | "autoReleaseAssets": false, 61 | "_id": "8f25bd57-0439-4165-9592-b450a2c9f0e8" 62 | }, 63 | { 64 | "__type__": "cc.Node", 65 | "_name": "Canvas", 66 | "_objFlags": 0, 67 | "_parent": { 68 | "__id__": 1 69 | }, 70 | "_children": [ 71 | { 72 | "__id__": 3 73 | }, 74 | { 75 | "__id__": 5 76 | } 77 | ], 78 | "_active": true, 79 | "_components": [ 80 | { 81 | "__id__": 13 82 | }, 83 | { 84 | "__id__": 14 85 | } 86 | ], 87 | "_prefab": null, 88 | "_opacity": 255, 89 | "_color": { 90 | "__type__": "cc.Color", 91 | "r": 255, 92 | "g": 255, 93 | "b": 255, 94 | "a": 255 95 | }, 96 | "_contentSize": { 97 | "__type__": "cc.Size", 98 | "width": 1920, 99 | "height": 1080 100 | }, 101 | "_anchorPoint": { 102 | "__type__": "cc.Vec2", 103 | "x": 0.5, 104 | "y": 0.5 105 | }, 106 | "_trs": { 107 | "__type__": "TypedArray", 108 | "ctor": "Float64Array", 109 | "array": [ 110 | 960, 111 | 540, 112 | 0, 113 | 0, 114 | 0, 115 | 0, 116 | 1, 117 | 1, 118 | 1, 119 | 1 120 | ] 121 | }, 122 | "_eulerAngles": { 123 | "__type__": "cc.Vec3", 124 | "x": 0, 125 | "y": 0, 126 | "z": 0 127 | }, 128 | "_skewX": 0, 129 | "_skewY": 0, 130 | "_is3DNode": false, 131 | "_groupIndex": 0, 132 | "groupIndex": 0, 133 | "_id": "78yWCqVA1HC4a1pBTEYEkG" 134 | }, 135 | { 136 | "__type__": "cc.Node", 137 | "_name": "Main Camera", 138 | "_objFlags": 0, 139 | "_parent": { 140 | "__id__": 2 141 | }, 142 | "_children": [], 143 | "_active": true, 144 | "_components": [ 145 | { 146 | "__id__": 4 147 | } 148 | ], 149 | "_prefab": null, 150 | "_opacity": 255, 151 | "_color": { 152 | "__type__": "cc.Color", 153 | "r": 255, 154 | "g": 255, 155 | "b": 255, 156 | "a": 255 157 | }, 158 | "_contentSize": { 159 | "__type__": "cc.Size", 160 | "width": 0, 161 | "height": 0 162 | }, 163 | "_anchorPoint": { 164 | "__type__": "cc.Vec2", 165 | "x": 0.5, 166 | "y": 0.5 167 | }, 168 | "_trs": { 169 | "__type__": "TypedArray", 170 | "ctor": "Float64Array", 171 | "array": [ 172 | 0, 173 | 0, 174 | 224.42432014842277, 175 | 0, 176 | 0, 177 | 0, 178 | 1, 179 | 1, 180 | 1, 181 | 1 182 | ] 183 | }, 184 | "_eulerAngles": { 185 | "__type__": "cc.Vec3", 186 | "x": 0, 187 | "y": 0, 188 | "z": 0 189 | }, 190 | "_skewX": 0, 191 | "_skewY": 0, 192 | "_is3DNode": false, 193 | "_groupIndex": 0, 194 | "groupIndex": 0, 195 | "_id": "8fFyNODmhEmbFUm0Ssh12Y" 196 | }, 197 | { 198 | "__type__": "cc.Camera", 199 | "_name": "", 200 | "_objFlags": 0, 201 | "node": { 202 | "__id__": 3 203 | }, 204 | "_enabled": true, 205 | "_cullingMask": 4294967295, 206 | "_clearFlags": 7, 207 | "_backgroundColor": { 208 | "__type__": "cc.Color", 209 | "r": 0, 210 | "g": 0, 211 | "b": 0, 212 | "a": 255 213 | }, 214 | "_depth": -1, 215 | "_zoomRatio": 1, 216 | "_targetTexture": null, 217 | "_fov": 60, 218 | "_orthoSize": 10, 219 | "_nearClip": 1, 220 | "_farClip": 4096, 221 | "_ortho": true, 222 | "_rect": { 223 | "__type__": "cc.Rect", 224 | "x": 0, 225 | "y": 0, 226 | "width": 1, 227 | "height": 1 228 | }, 229 | "_renderStages": 1, 230 | "_alignWithScreen": true, 231 | "_id": "faOFqjVVBBY6T1/eAxmWPt" 232 | }, 233 | { 234 | "__type__": "cc.Node", 235 | "_name": "root", 236 | "_objFlags": 0, 237 | "_parent": { 238 | "__id__": 2 239 | }, 240 | "_children": [ 241 | { 242 | "__id__": 6 243 | } 244 | ], 245 | "_active": true, 246 | "_components": [], 247 | "_prefab": null, 248 | "_opacity": 255, 249 | "_color": { 250 | "__type__": "cc.Color", 251 | "r": 255, 252 | "g": 255, 253 | "b": 255, 254 | "a": 255 255 | }, 256 | "_contentSize": { 257 | "__type__": "cc.Size", 258 | "width": 0, 259 | "height": 0 260 | }, 261 | "_anchorPoint": { 262 | "__type__": "cc.Vec2", 263 | "x": 0.5, 264 | "y": 0.5 265 | }, 266 | "_trs": { 267 | "__type__": "TypedArray", 268 | "ctor": "Float64Array", 269 | "array": [ 270 | 0, 271 | 0, 272 | 0, 273 | 0, 274 | 0, 275 | 0, 276 | 1, 277 | 1, 278 | 1, 279 | 1 280 | ] 281 | }, 282 | "_eulerAngles": { 283 | "__type__": "cc.Vec3", 284 | "x": 0, 285 | "y": 0, 286 | "z": 0 287 | }, 288 | "_skewX": 0, 289 | "_skewY": 0, 290 | "_is3DNode": false, 291 | "_groupIndex": 0, 292 | "groupIndex": 0, 293 | "_id": "90FrXMlohHfqXciLO6DNJM" 294 | }, 295 | { 296 | "__type__": "cc.Node", 297 | "_name": "game-world", 298 | "_objFlags": 0, 299 | "_parent": { 300 | "__id__": 5 301 | }, 302 | "_children": [ 303 | { 304 | "__id__": 7 305 | }, 306 | { 307 | "__id__": 8 308 | } 309 | ], 310 | "_active": true, 311 | "_components": [ 312 | { 313 | "__id__": 12 314 | } 315 | ], 316 | "_prefab": null, 317 | "_opacity": 255, 318 | "_color": { 319 | "__type__": "cc.Color", 320 | "r": 255, 321 | "g": 255, 322 | "b": 255, 323 | "a": 255 324 | }, 325 | "_contentSize": { 326 | "__type__": "cc.Size", 327 | "width": 0, 328 | "height": 0 329 | }, 330 | "_anchorPoint": { 331 | "__type__": "cc.Vec2", 332 | "x": 0.5, 333 | "y": 0.5 334 | }, 335 | "_trs": { 336 | "__type__": "TypedArray", 337 | "ctor": "Float64Array", 338 | "array": [ 339 | 0, 340 | 0, 341 | 0, 342 | 0, 343 | 0, 344 | 0, 345 | 1, 346 | 1, 347 | 1, 348 | 1 349 | ] 350 | }, 351 | "_eulerAngles": { 352 | "__type__": "cc.Vec3", 353 | "x": 0, 354 | "y": 0, 355 | "z": 0 356 | }, 357 | "_skewX": 0, 358 | "_skewY": 0, 359 | "_is3DNode": false, 360 | "_groupIndex": 0, 361 | "groupIndex": 0, 362 | "_id": "a1pUFzIhBK2qSIkQiYYFCx" 363 | }, 364 | { 365 | "__type__": "cc.Node", 366 | "_name": "game-layer", 367 | "_objFlags": 0, 368 | "_parent": { 369 | "__id__": 6 370 | }, 371 | "_children": [], 372 | "_active": true, 373 | "_components": [], 374 | "_prefab": null, 375 | "_opacity": 255, 376 | "_color": { 377 | "__type__": "cc.Color", 378 | "r": 255, 379 | "g": 255, 380 | "b": 255, 381 | "a": 255 382 | }, 383 | "_contentSize": { 384 | "__type__": "cc.Size", 385 | "width": 0, 386 | "height": 0 387 | }, 388 | "_anchorPoint": { 389 | "__type__": "cc.Vec2", 390 | "x": 0.5, 391 | "y": 0.5 392 | }, 393 | "_trs": { 394 | "__type__": "TypedArray", 395 | "ctor": "Float64Array", 396 | "array": [ 397 | 0, 398 | 0, 399 | 0, 400 | 0, 401 | 0, 402 | 0, 403 | 1, 404 | 1, 405 | 1, 406 | 1 407 | ] 408 | }, 409 | "_eulerAngles": { 410 | "__type__": "cc.Vec3", 411 | "x": 0, 412 | "y": 0, 413 | "z": 0 414 | }, 415 | "_skewX": 0, 416 | "_skewY": 0, 417 | "_is3DNode": false, 418 | "_groupIndex": 0, 419 | "groupIndex": 0, 420 | "_id": "cb99AqDFtNbZGZKrdqZT+x" 421 | }, 422 | { 423 | "__type__": "cc.Node", 424 | "_name": "game-ui-layer", 425 | "_objFlags": 0, 426 | "_parent": { 427 | "__id__": 6 428 | }, 429 | "_children": [ 430 | { 431 | "__id__": 9 432 | } 433 | ], 434 | "_active": true, 435 | "_components": [ 436 | { 437 | "__id__": 11 438 | } 439 | ], 440 | "_prefab": null, 441 | "_opacity": 255, 442 | "_color": { 443 | "__type__": "cc.Color", 444 | "r": 255, 445 | "g": 255, 446 | "b": 255, 447 | "a": 255 448 | }, 449 | "_contentSize": { 450 | "__type__": "cc.Size", 451 | "width": 0, 452 | "height": 0 453 | }, 454 | "_anchorPoint": { 455 | "__type__": "cc.Vec2", 456 | "x": 0.5, 457 | "y": 0.5 458 | }, 459 | "_trs": { 460 | "__type__": "TypedArray", 461 | "ctor": "Float64Array", 462 | "array": [ 463 | 0, 464 | 0, 465 | 0, 466 | 0, 467 | 0, 468 | 0, 469 | 1, 470 | 1, 471 | 1, 472 | 1 473 | ] 474 | }, 475 | "_eulerAngles": { 476 | "__type__": "cc.Vec3", 477 | "x": 0, 478 | "y": 0, 479 | "z": 0 480 | }, 481 | "_skewX": 0, 482 | "_skewY": 0, 483 | "_is3DNode": false, 484 | "_groupIndex": 0, 485 | "groupIndex": 0, 486 | "_id": "bbt9Ljg8FF0o5WGbKLm6BM" 487 | }, 488 | { 489 | "__type__": "cc.Node", 490 | "_name": "tiem-count-down-label", 491 | "_objFlags": 0, 492 | "_parent": { 493 | "__id__": 8 494 | }, 495 | "_children": [], 496 | "_active": true, 497 | "_components": [ 498 | { 499 | "__id__": 10 500 | } 501 | ], 502 | "_prefab": null, 503 | "_opacity": 255, 504 | "_color": { 505 | "__type__": "cc.Color", 506 | "r": 255, 507 | "g": 255, 508 | "b": 255, 509 | "a": 255 510 | }, 511 | "_contentSize": { 512 | "__type__": "cc.Size", 513 | "width": 166.85, 514 | "height": 378 515 | }, 516 | "_anchorPoint": { 517 | "__type__": "cc.Vec2", 518 | "x": 0.5, 519 | "y": 0.5 520 | }, 521 | "_trs": { 522 | "__type__": "TypedArray", 523 | "ctor": "Float64Array", 524 | "array": [ 525 | 0, 526 | 267, 527 | 0, 528 | 0, 529 | 0, 530 | 0, 531 | 1, 532 | 1, 533 | 1, 534 | 1 535 | ] 536 | }, 537 | "_eulerAngles": { 538 | "__type__": "cc.Vec3", 539 | "x": 0, 540 | "y": 0, 541 | "z": 0 542 | }, 543 | "_skewX": 0, 544 | "_skewY": 0, 545 | "_is3DNode": false, 546 | "_groupIndex": 0, 547 | "groupIndex": 0, 548 | "_id": "282PNErudERYo5TTg8cOCH" 549 | }, 550 | { 551 | "__type__": "cc.Label", 552 | "_name": "", 553 | "_objFlags": 0, 554 | "node": { 555 | "__id__": 9 556 | }, 557 | "_enabled": true, 558 | "_materials": [ 559 | { 560 | "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" 561 | } 562 | ], 563 | "_useOriginalSize": false, 564 | "_string": "3", 565 | "_N$string": "3", 566 | "_fontSize": 300, 567 | "_lineHeight": 300, 568 | "_enableWrapText": true, 569 | "_N$file": null, 570 | "_isSystemFontUsed": true, 571 | "_spacingX": 0, 572 | "_batchAsBitmap": false, 573 | "_styleFlags": 0, 574 | "_underlineHeight": 0, 575 | "_N$horizontalAlign": 1, 576 | "_N$verticalAlign": 1, 577 | "_N$fontFamily": "Arial", 578 | "_N$overflow": 0, 579 | "_N$cacheMode": 0, 580 | "_id": "92SH3lowdJCaTYdmP3lBSQ" 581 | }, 582 | { 583 | "__type__": "03ef3ayjNtD1qKBjXDWNvAt", 584 | "_name": "", 585 | "_objFlags": 0, 586 | "node": { 587 | "__id__": 8 588 | }, 589 | "_enabled": true, 590 | "timeCountDownLabel": { 591 | "__id__": 10 592 | }, 593 | "_id": "842I9OVR5EmY6p0uNPYqbc" 594 | }, 595 | { 596 | "__type__": "16f7c/SvlBEjYkBlJXZkXOq", 597 | "_name": "", 598 | "_objFlags": 0, 599 | "node": { 600 | "__id__": 6 601 | }, 602 | "_enabled": true, 603 | "levelPrefabs": [ 604 | { 605 | "__uuid__": "951917fe-3f44-4ab6-97cc-f3e880d17db8" 606 | } 607 | ], 608 | "gameLayerNode": { 609 | "__id__": 7 610 | }, 611 | "gameUiLayerNode": { 612 | "__id__": 8 613 | }, 614 | "_id": "eazyfhGO1OLreA/rk6ck2K" 615 | }, 616 | { 617 | "__type__": "cc.Canvas", 618 | "_name": "", 619 | "_objFlags": 0, 620 | "node": { 621 | "__id__": 2 622 | }, 623 | "_enabled": true, 624 | "_designResolution": { 625 | "__type__": "cc.Size", 626 | "width": 1920, 627 | "height": 1080 628 | }, 629 | "_fitWidth": false, 630 | "_fitHeight": true, 631 | "_id": "f18MgfF5hHT67QAzLkkiL/" 632 | }, 633 | { 634 | "__type__": "cc.Widget", 635 | "_name": "", 636 | "_objFlags": 0, 637 | "node": { 638 | "__id__": 2 639 | }, 640 | "_enabled": true, 641 | "alignMode": 1, 642 | "_target": null, 643 | "_alignFlags": 45, 644 | "_left": 0, 645 | "_right": 0, 646 | "_top": 0, 647 | "_bottom": 0, 648 | "_verticalCenter": 0, 649 | "_horizontalCenter": 0, 650 | "_isAbsLeft": true, 651 | "_isAbsRight": true, 652 | "_isAbsTop": true, 653 | "_isAbsBottom": true, 654 | "_isAbsHorizontalCenter": true, 655 | "_isAbsVerticalCenter": true, 656 | "_originalWidth": 0, 657 | "_originalHeight": 0, 658 | "_id": "1dLugCZKRDdqIT+p3zfdW7" 659 | } 660 | ] -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scenes/game.fire.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.2.6", 3 | "uuid": "8f25bd57-0439-4165-9592-b450a2c9f0e8", 4 | "asyncLoadAssets": false, 5 | "autoReleaseAssets": false, 6 | "subMetas": {} 7 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "d3511789-72f7-4006-8362-716f2c95f11a", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/build-menu.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | cc.Class({ 3 | extends: cc.Component, 4 | 5 | properties: { 6 | 7 | }, 8 | 9 | // use this for initialization 10 | onLoad: function () { 11 | 12 | }, 13 | buttonClick: function (event, coustomData) { 14 | cc.log("button click " + coustomData); 15 | global.event.fire("build_tower", coustomData); 16 | } 17 | 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/build-menu.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "40d7f2f8-063d-4115-b891-d7162c2d5d2a", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/bullet.js: -------------------------------------------------------------------------------- 1 | cc.Class({ 2 | extends: cc.Component, 3 | 4 | properties: { 5 | 6 | }, 7 | 8 | // use this for initialization 9 | onLoad: function () { 10 | this.direction = cc.v2(0, 0); 11 | this.speed = 600; 12 | }, 13 | initWithData: function (tower, position, enemyNodeList) { 14 | this.direction = position.sub(tower.position).normalize(); 15 | this.node.position = tower.position.add(this.direction.mul(100)); 16 | 17 | 18 | let angle = cc.v2(this.direction.x, this.direction.y).signAngle(cc.v2(0, 1)); 19 | this.node.angle = -(180 / Math.PI) * angle; 20 | this.enemyNodeList = enemyNodeList; 21 | this.damage = tower.getComponent("tower").getDamage(); 22 | }, 23 | 24 | update: function (dt) { 25 | // cc.log("direction " + JSON.stringify(this.direction)); 26 | this.node.position = this.node.position.add(this.direction.mul(this.speed * dt)); 27 | 28 | for (let i = 0; i < this.enemyNodeList.length; i++) { 29 | let enemy = this.enemyNodeList[i]; 30 | if (enemy.getComponent("enemy").isLiving()) { 31 | let distance = enemy.position.add(this.node.position).mag(); 32 | if (distance < (enemy.width * 0.5 + this.node.width * 0.5)) { 33 | enemy.getComponent("enemy").beAttacked(this.damage); 34 | this.node.destroy(); 35 | // cc.log("") 36 | } 37 | } 38 | } 39 | 40 | if (this.node.position.x < - 1920 * 0.5 || this.node.position.x > 1920 * 0.5 41 | || this.node.position.y > 1080 * 0.5 || this.node.position.y < - 1080 * 0.5) { 42 | this.node.destroy(); 43 | cc.log("删掉子弹"); 44 | } 45 | 46 | }, 47 | }); 48 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/bullet.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "cb686be6-8958-44af-a7e2-37e23aaa7a8c", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/enemy.js: -------------------------------------------------------------------------------- 1 | const EnemyState = { 2 | Invalid: -1, 3 | Running: 1, 4 | EndPath: 2, 5 | Dead: 3 6 | }; 7 | cc.Class({ 8 | extends: cc.Component, 9 | 10 | properties: { 11 | spriteFrames: { 12 | default: [], 13 | type: cc.SpriteFrame 14 | }, 15 | spriteNode: { 16 | default: null, 17 | type: cc.Sprite 18 | }, 19 | healthProgressBar: { 20 | default: null, 21 | type: cc.ProgressBar 22 | } 23 | }, 24 | 25 | // use this for initialization 26 | onLoad: function () { 27 | this.state = EnemyState.Invalid; 28 | this.node.opacity = 0; 29 | this.direction = cc.v2(0, 0); 30 | this.currentPathPointCount = 0; 31 | this.currentHealthCount = 0; 32 | this.totalHealthCount = 1; 33 | } 34 | , 35 | initWithData: function (type, pathPoints) { 36 | //0 - 6 37 | this.spriteNode.spriteFrame = this.spriteFrames[type]; 38 | this.pathPoints = pathPoints; 39 | this.node.position = pathPoints[0].position; 40 | cc.loader.loadRes("./config/monster_config", (err, result)=>{ 41 | if (err){ 42 | cc.log(err); 43 | }else { 44 | // cc.log("enemy result = " + JSON.stringify(result)); 45 | let config = result.json["enemy_" + type]; 46 | this.speed = config.speed; 47 | this.currentHealthCount = config.health; 48 | this.totalHealthCount = config.health; 49 | this.setState(EnemyState.Running); 50 | } 51 | }); 52 | 53 | }, 54 | update: function (dt) { 55 | if (this.state === EnemyState.Running){ 56 | let distance = this.node.position.sub(this.pathPoints[this.currentPathPointCount].position).mag(); 57 | if (distance < 10){ 58 | this.currentPathPointCount ++; 59 | if (this.currentPathPointCount === this.pathPoints.length){ 60 | this.setState(EnemyState.EndPath); 61 | return 62 | } 63 | this.direction = this.pathPoints[this.currentPathPointCount].position.sub(this.node.position).normalize(); 64 | }else { 65 | this.node.position = this.node.position.add(this.direction.mul(this.speed * dt)); 66 | } 67 | } 68 | this.healthProgressBar.progress = this.currentHealthCount / this.totalHealthCount; 69 | }, 70 | setState: function (state) { 71 | if (this.state === state){ 72 | return ; 73 | } 74 | switch (state){ 75 | case EnemyState.Running: 76 | this.node.opacity = 255; 77 | break; 78 | case EnemyState.Dead: 79 | let action = cc.fadeOut(1); 80 | let sequence = cc.sequence(action, cc.callFunc(()=>{ 81 | cc.log("死了"); 82 | // this.node.destroy(); 83 | })); 84 | this.node.runAction(sequence); 85 | 86 | 87 | break; 88 | case EnemyState.EndPath: 89 | break; 90 | default: 91 | break; 92 | } 93 | this.state = state; 94 | }, 95 | isLiving: function () { 96 | if (this.state === EnemyState.Running){ 97 | return true; 98 | } 99 | return false; 100 | }, 101 | beAttacked: function (damage) { 102 | this.currentHealthCount -= damage; 103 | if (this.currentHealthCount < 0){ 104 | this.currentHealthCount = 0; 105 | this.setState(EnemyState.Dead); 106 | } 107 | }, 108 | isDead: function () { 109 | if (this.state === EnemyState.Dead){ 110 | return true; 111 | } 112 | return false; 113 | } 114 | 115 | 116 | }); 117 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/enemy.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "f3c07685-0e13-48cd-975e-350ede82708b", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/event-listener.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by chu on 2017/10/10 0010. 3 | */ 4 | const EventListener = function (obj) { 5 | let Regsiter = {}; 6 | obj.on = function (name , method) { 7 | if (!Regsiter.hasOwnProperty(name)){ 8 | Regsiter[name] = []; 9 | } 10 | Regsiter[name].push(method); 11 | }; 12 | obj.fire = function (name) { 13 | if (Regsiter.hasOwnProperty(name)){ 14 | let handlerList = Regsiter[name]; 15 | for (let i = 0 ; i < handlerList.length ; i ++){ 16 | let handler = handlerList[i]; 17 | let args = []; 18 | for (let j = 1 ; j < arguments.length ;j ++){ 19 | args.push(arguments[j]); 20 | } 21 | handler.apply(this, args); 22 | } 23 | } 24 | }; 25 | obj.off = function (name, method) { 26 | if (Regsiter.hasOwnProperty(name)){ 27 | let handlerList = Regsiter[name]; 28 | for (let i = 0 ; i < handlerList.length ; i ++){ 29 | if (handlerList[i] === method){ 30 | handlerList.splice(i, 1); 31 | } 32 | } 33 | } 34 | }; 35 | return obj 36 | }; 37 | export default EventListener; -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/event-listener.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "136f1486-6be7-4b71-a9e5-d5d5951a1be6", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/game-ui-layer.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | cc.Class({ 3 | extends: cc.Component, 4 | 5 | properties: { 6 | timeCountDownLabel: { 7 | default: null, 8 | type: cc.Label 9 | } 10 | }, 11 | 12 | // use this for initialization 13 | onLoad: function () { 14 | this.nowTime = 4; 15 | } 16 | , 17 | update: function (dt) { 18 | if (this.nowTime > 0){ 19 | this.nowTime -= dt; 20 | // cc.log("now time = " +( this.nowTime - Math.floor(this.nowTime))); 21 | 22 | if ((this.nowTime - Math.floor(this.nowTime) )< 0.1){ 23 | this.timeCountDownLabel.string = (Math.floor(this.nowTime) - 1); 24 | if (Math.floor(this.nowTime) === 0){ 25 | cc.log("游戏开始"); 26 | this.timeCountDownLabel.string = ""; 27 | this.nowTime = 0; 28 | global.event.fire("game_start"); 29 | } 30 | } 31 | } 32 | } 33 | }); 34 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/game-ui-layer.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "03ef36b2-8cdb-43d6-a281-8d70d636f02d", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/game-world.js: -------------------------------------------------------------------------------- 1 | cc.Class({ 2 | extends: cc.Component, 3 | 4 | properties: { 5 | levelPrefabs: { 6 | default: [], 7 | type: cc.Prefab 8 | }, 9 | gameLayerNode: { 10 | default: null, 11 | type: cc.Node 12 | }, 13 | gameUiLayerNode: { 14 | default: null, 15 | type: cc.Node 16 | } 17 | }, 18 | 19 | // use this for initialization 20 | onLoad: function () { 21 | let level = cc.instantiate(this.levelPrefabs[0]); 22 | level.parent = this.gameLayerNode; 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/game-world.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "16f7cfd2-be50-448d-8901-9495d99173aa", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/global.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by chu on 2017/10/10 0010. 3 | */ 4 | import EventListener from './event-listener' 5 | const global = global || {}; 6 | global.event = EventListener({}); 7 | export default global; -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/global.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "33cd23c0-9969-44ff-99a1-13b9e2006a54", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/level.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | const TowerPosNodeState = { 3 | Invalid: -1, 4 | Null: 1, 5 | BuildMenu: 2, 6 | Tower: 3, 7 | UpdateMenu: 4 8 | }; 9 | cc.Class({ 10 | extends: cc.Component, 11 | properties: { 12 | enemyPathNodes: { 13 | default: [], 14 | type: cc.Node 15 | }, 16 | towerPosNodes: { 17 | default: [], 18 | type: cc.Node 19 | }, 20 | buildMenuPrefab: { 21 | default: null, 22 | type: cc.Prefab 23 | }, 24 | towerPrefabs: { 25 | default: [], 26 | type: cc.Prefab 27 | }, 28 | updateMenuPrefab: { 29 | default: null, 30 | type: cc.Prefab 31 | }, 32 | enemyPrefab: { 33 | default: null, 34 | type: cc.Prefab 35 | }, 36 | bulletPrefab: { 37 | default: null, 38 | type: cc.Prefab 39 | } 40 | }, 41 | 42 | // use this for initialization 43 | onLoad: function () { 44 | for (let i = 0 ; i < this.towerPosNodes.length; i ++){ 45 | let node = this.towerPosNodes[i]; 46 | this.setState(node, TowerPosNodeState.Null); 47 | this.setTouchEvent(node); 48 | }; 49 | global.event.on("build_tower", this.buildTower.bind(this)); 50 | global.event.on("update_tower", this.updateTower.bind(this)); 51 | global.event.on("sell_tower",this.sellTower.bind(this)); 52 | global.event.on("game_start", this.gameStart.bind(this)); 53 | global.event.on("shoot_bullet", this.addBullet.bind(this)); 54 | global.event.on("sell_tower", this.sellTower.bind(this)); 55 | this.currentWaveCount = 0; 56 | this.currentEnemyCount = 0; 57 | this.addEnemyCurrentTime = 0; 58 | this.addWaveCurrentTime = 0; 59 | this.enemyNodeList = []; 60 | this.bulletNodeList = []; 61 | }, 62 | setTouchEvent: function (node) { 63 | node.on(cc.Node.EventType.TOUCH_START, (event)=>{ 64 | cc.log("touch node name = " + event.target.name); 65 | if (node.state === TowerPosNodeState.Null){ 66 | this.showBuildMenu(event.target); 67 | }else if (node.state === TowerPosNodeState.Tower){ 68 | this.showUpdateMenu(event.target); 69 | } 70 | }); 71 | }, 72 | showBuildMenu: function (node) { 73 | this.closeMenu(); 74 | let menu = cc.instantiate(this.buildMenuPrefab); 75 | menu.parent = this.node; 76 | menu.position = node.position; 77 | this.setState(node, TowerPosNodeState.BuildMenu); 78 | node.menu = menu; 79 | }, 80 | showUpdateMenu: function (node) { 81 | this.closeMenu(); 82 | let menu = cc.instantiate(this.updateMenuPrefab); 83 | menu.parent = this.node; 84 | menu.position = node.position; 85 | this.setState(node, TowerPosNodeState.UpdateMenu); 86 | node.menu = menu; 87 | }, 88 | closeMenu: function () { 89 | for (let i = 0 ; i < this.towerPosNodes.length ; i ++){ 90 | let node = this.towerPosNodes[i]; 91 | if (node.state === TowerPosNodeState.BuildMenu){ 92 | node.menu.destroy(); 93 | this.setState(node, TowerPosNodeState.Null); 94 | return node; 95 | } 96 | if (node.state === TowerPosNodeState.UpdateMenu){ 97 | node.menu.destroy(); 98 | this.setState(node, TowerPosNodeState.Tower); 99 | return node; 100 | } 101 | } 102 | 103 | } 104 | , 105 | setState: function (node, state) { 106 | if (node.state === state){ 107 | return; 108 | } 109 | switch (state){ 110 | case TowerPosNodeState.Null: 111 | break; 112 | case TowerPosNodeState.BuildMenu: 113 | break; 114 | default: 115 | break; 116 | } 117 | node.state = state; 118 | }, 119 | buildTower: function (data) { 120 | cc.log("build tower " + data); 121 | let node = this.closeMenu(); 122 | let tower = cc.instantiate(this.towerPrefabs[data]); 123 | tower.parent = this.node; 124 | tower.position = node.position; 125 | this.setState(node, TowerPosNodeState.Tower); 126 | node.tower = tower; 127 | }, 128 | onDestroy: function () { 129 | global.event.off("build_tower", this.buildTower); 130 | }, 131 | updateTower: function () { 132 | let node = this.closeMenu(); 133 | node.tower.getComponent("tower").updateTower(); 134 | }, 135 | sellTower: function () { 136 | let node = this.closeMenu(); 137 | this.setState(node, TowerPosNodeState.Null); 138 | node.tower.getComponent("tower").sellTower(); 139 | node.tower = undefined; 140 | }, 141 | gameStart: function () { 142 | cc.loader.loadRes("./config/level_config", (err, result)=> { 143 | if (err){ 144 | cc.log("load config " + err); 145 | }else { 146 | cc.log("level config" + JSON.stringify(result)); 147 | } 148 | this.levelConfig = result.json["level_1"]; 149 | // this.levelConfig = config; 150 | // console.log("level config", this.levelConfig); 151 | // this.currentWaveConfig = wavesConfig[0]; 152 | }); 153 | }, 154 | addEnemy: function (type) { 155 | // cc.log("add Enemy" + this.currentEnemyCount); 156 | // cc.log("add Wave " + this.currentWaveCount) 157 | let enemy = cc.instantiate(this.enemyPrefab); 158 | enemy.getComponent("enemy").initWithData(type, this.enemyPathNodes); 159 | enemy.parent = this.node; 160 | this.enemyNodeList.push(enemy); 161 | }, 162 | update: function (dt) { 163 | if (this.currentWaveConfig){ 164 | if (this.addEnemyCurrentTime > this.currentWaveConfig.dt){ 165 | this.addEnemyCurrentTime = 0; 166 | this.currentEnemyCount ++; 167 | this.addEnemy(this.currentWaveConfig.type); 168 | if (this.currentEnemyCount === this.currentWaveConfig.count){ 169 | this.currentWaveConfig = undefined; 170 | this.currentEnemyCount = 0; 171 | } 172 | } 173 | else { 174 | this.addEnemyCurrentTime += dt; 175 | } 176 | }else { 177 | if (this.levelConfig && this.addWaveCurrentTime > this.levelConfig.dt){ 178 | this.currentWaveConfig = this.levelConfig.waves[this.currentWaveCount]; 179 | if (this.currentWaveCount < this.levelConfig.waves.length ){ 180 | this.currentWaveCount ++; 181 | }else { 182 | this.currentWaveConfig = undefined; 183 | } 184 | this.addWaveCurrentTime = 0; 185 | }else { 186 | this.addWaveCurrentTime += dt; 187 | } 188 | } 189 | 190 | for (let i = 0 ; i < this.towerPosNodes.length ; i ++){ 191 | let tower = this.towerPosNodes[i].tower; 192 | if (tower != undefined && tower.getComponent("tower").isFree()){ 193 | for (let j = 0 ; j < this.enemyNodeList.length ; j ++){ 194 | let enemy = this.enemyNodeList[j]; 195 | if (enemy.getComponent("enemy").isLiving()){ 196 | // let distance = cc.pDistance(tower) 197 | tower.getComponent("tower").setEnemy(enemy); 198 | }else if (enemy.getComponent("enemy").isDead()){ 199 | cc.log("从列表里面删掉"); 200 | this.enemyNodeList.splice(j , 1); 201 | } 202 | } 203 | } 204 | } 205 | 206 | }, 207 | addBullet: function (tower, position) { 208 | 209 | let bullet = cc.instantiate(this.bulletPrefab); 210 | // bullet.position = tower.position; 211 | bullet.parent = this.node; 212 | bullet.getComponent("bullet").initWithData(tower, position, this.enemyNodeList); 213 | 214 | } 215 | }); 216 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/level.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "00fedcb1-1361-41f0-8940-091f90c458ed", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/tower.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | cc.Class({ 3 | extends: cc.Component, 4 | 5 | properties: { 6 | spriteFrames: { 7 | default: [], 8 | type: cc.SpriteFrame 9 | }, 10 | spriteNode: { 11 | default: null, 12 | type: cc.Sprite 13 | }, 14 | towerType: "" 15 | }, 16 | 17 | // use this for initialization 18 | onLoad: function () { 19 | this.levelCount = 0; 20 | this.currentDamage = 0; 21 | this.lookRange = 0; 22 | this.currentAttackRange = 0; 23 | this.shootBulletDt = 0; 24 | this.currentShootTime = 0; 25 | cc.loader.loadRes("./config/tower_config", (err, result) => { 26 | if (err) { 27 | cc.log("load config = " + err); 28 | } else { 29 | cc.log("load config = " + JSON.stringify(result)); 30 | this.towerConfig = result.json[this.towerType]; 31 | this.currentDamage = this.towerConfig.damages[this.levelCount]; 32 | this.currentAttackRange = this.towerConfig.attack_ranges[this.levelCount]; 33 | this.lookRange = this.towerConfig.look_range; 34 | this.shootBulletDt = this.towerConfig.shoot_dts[this.levelCount]; 35 | } 36 | }); 37 | }, 38 | updateTower: function () { 39 | cc.log("update tower"); 40 | if (this.levelCount < this.spriteFrames.length - 1) { 41 | this.levelCount++; 42 | this.spriteNode.spriteFrame = this.spriteFrames[this.levelCount]; 43 | 44 | this.currentDamage = this.towerConfig.damages[this.levelCount]; 45 | this.currentAttackRange = this.towerConfig.attack_ranges[this.levelCount]; 46 | this.lookRange = this.towerConfig.look_range; 47 | this.shootBulletDt = this.towerConfig.shoot_dts[this.levelCount]; 48 | 49 | } else { 50 | cc.log("满级"); 51 | } 52 | 53 | 54 | }, 55 | sellTower: function () { 56 | cc.log("sell tower"); 57 | 58 | this.node.destroy(); 59 | } 60 | , 61 | isFree: function () { 62 | if (this.enemy === undefined) { 63 | return true; 64 | } 65 | return false; 66 | }, 67 | setEnemy: function (enemy) { 68 | 69 | let distance = enemy.position.sub(this.node.position).mag(); 70 | if (distance < this.lookRange) { 71 | this.enemy = enemy; 72 | } 73 | 74 | }, 75 | update: function (dt) { 76 | if (this.enemy !== undefined) { 77 | let direction = this.node.position.sub(this.enemy.position); 78 | let angle = cc.v2(direction.x, direction.y).signAngle(cc.v2(0, -1)); 79 | // cc.log("angle = " + angle); 80 | this.node.angle =- (180 / Math.PI) * angle; 81 | 82 | if (this.currentShootTime > this.shootBulletDt) { 83 | this.currentShootTime = 0; 84 | this.shootBullet(); 85 | } else { 86 | this.currentShootTime += dt; 87 | } 88 | 89 | 90 | 91 | let distance = this.enemy.position.sub(this.node.position); 92 | if (distance > this.currentAttackRange || this.enemy.getComponent("enemy").isLiving() === false) { 93 | this.enemy = undefined; 94 | } 95 | } 96 | }, 97 | shootBullet: function () { 98 | global.event.fire("shoot_bullet", this.node, this.enemy.position); 99 | }, 100 | getDamage: function () { 101 | return this.currentDamage; 102 | } 103 | 104 | }); 105 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/tower.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "25898c9c-b4b7-485c-8c9f-4f3d0a3d30b8", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/update-menu.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | cc.Class({ 3 | extends: cc.Component, 4 | 5 | properties: { 6 | 7 | }, 8 | 9 | onLoad: function () { 10 | 11 | }, 12 | buttonClick: function (event, coustomData) { 13 | cc.log("button click = " + coustomData); 14 | global.event.fire(coustomData + "_tower"); 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /tower-defence-toturial/assets/scripts/update-menu.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.8", 3 | "uuid": "fbe03b23-80c8-4dd4-b2f3-8c37a6640b67", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence-toturial/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "experimentalDecorators": true 6 | }, 7 | "exclude": [ 8 | "node_modules", 9 | ".vscode", 10 | "library", 11 | "local", 12 | "settings", 13 | "temp" 14 | ] 15 | } -------------------------------------------------------------------------------- /tower-defence-toturial/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "engine": "cocos-creator-js", 3 | "packages": "packages", 4 | "version": "2.3.2", 5 | "id": "45510c8a-cb81-4058-812d-04e1f3fe6065" 6 | } -------------------------------------------------------------------------------- /tower-defence-toturial/settings/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "start-scene": "current", 3 | "group-list": [ 4 | "default" 5 | ], 6 | "collision-matrix": [ 7 | [ 8 | true 9 | ] 10 | ], 11 | "excluded-modules": [ 12 | "Geom Utils", 13 | "3D", 14 | "3D Primitive", 15 | "3D Physics/cannon.js", 16 | "3D Physics/Builtin", 17 | "3D Particle" 18 | ], 19 | "design-resolution-width": 960, 20 | "design-resolution-height": 640, 21 | "fit-width": false, 22 | "fit-height": true, 23 | "use-project-simulator-setting": false, 24 | "simulator-orientation": false, 25 | "use-customize-simulator": false, 26 | "simulator-resolution": { 27 | "width": 960, 28 | "height": 640 29 | }, 30 | "last-module-event-record-time": 0, 31 | "assets-sort-type": "name", 32 | "facebook": { 33 | "enable": false, 34 | "appID": "", 35 | "live": { 36 | "enable": false 37 | }, 38 | "audience": { 39 | "enable": false 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /tower-defence-toturial/settings/services.json: -------------------------------------------------------------------------------- 1 | { 2 | "game": { 3 | "name": "UNKNOW GAME", 4 | "appid": "UNKNOW" 5 | } 6 | } -------------------------------------------------------------------------------- /tower-defence/.gitignore: -------------------------------------------------------------------------------- 1 | #///////////////////////////////////////////////////////////////////////////// 2 | # Fireball Projects 3 | #///////////////////////////////////////////////////////////////////////////// 4 | 5 | library/ 6 | temp/ 7 | local/ 8 | build/ 9 | 10 | #///////////////////////////////////////////////////////////////////////////// 11 | # Logs and databases 12 | #///////////////////////////////////////////////////////////////////////////// 13 | 14 | *.log 15 | *.sql 16 | *.sqlite 17 | 18 | #///////////////////////////////////////////////////////////////////////////// 19 | # files for debugger 20 | #///////////////////////////////////////////////////////////////////////////// 21 | 22 | *.sln 23 | *.csproj 24 | *.pidb 25 | *.unityproj 26 | *.suo 27 | 28 | #///////////////////////////////////////////////////////////////////////////// 29 | # OS generated files 30 | #///////////////////////////////////////////////////////////////////////////// 31 | 32 | .DS_Store 33 | ehthumbs.db 34 | Thumbs.db 35 | 36 | #///////////////////////////////////////////////////////////////////////////// 37 | # exvim files 38 | #///////////////////////////////////////////////////////////////////////////// 39 | 40 | *UnityVS.meta 41 | *.err 42 | *.err.meta 43 | *.exvim 44 | *.exvim.meta 45 | *.vimentry 46 | *.vimentry.meta 47 | *.vimproject 48 | *.vimproject.meta 49 | .vimfiles.*/ 50 | .exvim.*/ 51 | quick_gen_project_*_autogen.bat 52 | quick_gen_project_*_autogen.bat.meta 53 | quick_gen_project_*_autogen.sh 54 | quick_gen_project_*_autogen.sh.meta 55 | .exvim.app 56 | 57 | #///////////////////////////////////////////////////////////////////////////// 58 | # webstorm files 59 | #///////////////////////////////////////////////////////////////////////////// 60 | 61 | .idea/ 62 | 63 | #////////////////////////// 64 | # VS Code 65 | #////////////////////////// 66 | 67 | .vscode/ -------------------------------------------------------------------------------- /tower-defence/assets/prefabs.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "5c3a4714-ef92-4e74-b1e7-cc9fc54125fd", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/level_1.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "1e2d59a2-95e7-4411-95c1-331b862051b4", 4 | "asyncLoadAssets": false, 5 | "subMetas": {} 6 | } -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower-menu-build.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "tower-menu-build", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | }, 20 | { 21 | "__id__": 5 22 | }, 23 | { 24 | "__id__": 8 25 | } 26 | ], 27 | "_tag": -1, 28 | "_active": true, 29 | "_components": [ 30 | { 31 | "__id__": 11 32 | } 33 | ], 34 | "_prefab": { 35 | "__id__": 12 36 | }, 37 | "_id": "", 38 | "_opacity": 255, 39 | "_color": { 40 | "__type__": "cc.Color", 41 | "r": 255, 42 | "g": 255, 43 | "b": 255, 44 | "a": 255 45 | }, 46 | "_cascadeOpacityEnabled": true, 47 | "_anchorPoint": { 48 | "__type__": "cc.Vec2", 49 | "x": 0.5, 50 | "y": 0.5 51 | }, 52 | "_contentSize": { 53 | "__type__": "cc.Size", 54 | "width": 0, 55 | "height": 0 56 | }, 57 | "_rotationX": 0, 58 | "_rotationY": 0, 59 | "_scaleX": 1, 60 | "_scaleY": 1, 61 | "_position": { 62 | "__type__": "cc.Vec2", 63 | "x": 0, 64 | "y": 0 65 | }, 66 | "_skewX": 0, 67 | "_skewY": 0, 68 | "_localZOrder": 0, 69 | "_globalZOrder": 0, 70 | "_opacityModifyRGB": false, 71 | "groupIndex": 0 72 | }, 73 | { 74 | "__type__": "cc.Node", 75 | "_name": "塔防_45", 76 | "_objFlags": 0, 77 | "_parent": { 78 | "__id__": 1 79 | }, 80 | "_children": [], 81 | "_tag": -1, 82 | "_active": true, 83 | "_components": [ 84 | { 85 | "__id__": 3 86 | } 87 | ], 88 | "_prefab": { 89 | "__id__": 4 90 | }, 91 | "_id": "", 92 | "_opacity": 255, 93 | "_color": { 94 | "__type__": "cc.Color", 95 | "r": 255, 96 | "g": 255, 97 | "b": 255, 98 | "a": 255 99 | }, 100 | "_cascadeOpacityEnabled": true, 101 | "_anchorPoint": { 102 | "__type__": "cc.Vec2", 103 | "x": 0.5, 104 | "y": 0.5 105 | }, 106 | "_contentSize": { 107 | "__type__": "cc.Size", 108 | "width": 320, 109 | "height": 320 110 | }, 111 | "_rotationX": 0, 112 | "_rotationY": 0, 113 | "_scaleX": 1, 114 | "_scaleY": 1, 115 | "_position": { 116 | "__type__": "cc.Vec2", 117 | "x": 0, 118 | "y": 0 119 | }, 120 | "_skewX": 0, 121 | "_skewY": 0, 122 | "_localZOrder": 0, 123 | "_globalZOrder": 0, 124 | "_opacityModifyRGB": false, 125 | "groupIndex": 0 126 | }, 127 | { 128 | "__type__": "cc.Sprite", 129 | "_name": "", 130 | "_objFlags": 0, 131 | "node": { 132 | "__id__": 2 133 | }, 134 | "_enabled": true, 135 | "_spriteFrame": { 136 | "__uuid__": "37946c50-c89b-43d1-a6ce-da229d882204" 137 | }, 138 | "_type": 0, 139 | "_sizeMode": 1, 140 | "_fillType": 0, 141 | "_fillCenter": { 142 | "__type__": "cc.Vec2", 143 | "x": 0, 144 | "y": 0 145 | }, 146 | "_fillStart": 0, 147 | "_fillRange": 0, 148 | "_isTrimmedMode": true, 149 | "_srcBlendFactor": 770, 150 | "_dstBlendFactor": 771, 151 | "_atlas": null 152 | }, 153 | { 154 | "__type__": "cc.PrefabInfo", 155 | "root": { 156 | "__id__": 1 157 | }, 158 | "asset": { 159 | "__uuid__": "15c7e084-4862-458f-936b-8caf1c838ac9" 160 | }, 161 | "fileId": "1fAhsihKRCtrZBwVooXlxr", 162 | "sync": false 163 | }, 164 | { 165 | "__type__": "cc.Node", 166 | "_name": "tower_a", 167 | "_objFlags": 0, 168 | "_parent": { 169 | "__id__": 1 170 | }, 171 | "_children": [], 172 | "_tag": -1, 173 | "_active": true, 174 | "_components": [ 175 | { 176 | "__id__": 6 177 | } 178 | ], 179 | "_prefab": { 180 | "__id__": 7 181 | }, 182 | "_id": "", 183 | "_opacity": 255, 184 | "_color": { 185 | "__type__": "cc.Color", 186 | "r": 255, 187 | "g": 255, 188 | "b": 255, 189 | "a": 255 190 | }, 191 | "_cascadeOpacityEnabled": true, 192 | "_anchorPoint": { 193 | "__type__": "cc.Vec2", 194 | "x": 0.5, 195 | "y": 0.5 196 | }, 197 | "_contentSize": { 198 | "__type__": "cc.Size", 199 | "width": 93, 200 | "height": 114 201 | }, 202 | "_rotationX": 0, 203 | "_rotationY": 0, 204 | "_scaleX": 1, 205 | "_scaleY": 1, 206 | "_position": { 207 | "__type__": "cc.Vec2", 208 | "x": 0, 209 | "y": 100 210 | }, 211 | "_skewX": 0, 212 | "_skewY": 0, 213 | "_localZOrder": 0, 214 | "_globalZOrder": 0, 215 | "_opacityModifyRGB": false, 216 | "groupIndex": 0 217 | }, 218 | { 219 | "__type__": "cc.Sprite", 220 | "_name": "", 221 | "_objFlags": 0, 222 | "node": { 223 | "__id__": 5 224 | }, 225 | "_enabled": true, 226 | "_spriteFrame": { 227 | "__uuid__": "72cf92fc-2660-4d81-b12e-76918ee9c191" 228 | }, 229 | "_type": 0, 230 | "_sizeMode": 1, 231 | "_fillType": 0, 232 | "_fillCenter": { 233 | "__type__": "cc.Vec2", 234 | "x": 0, 235 | "y": 0 236 | }, 237 | "_fillStart": 0, 238 | "_fillRange": 0, 239 | "_isTrimmedMode": true, 240 | "_srcBlendFactor": 770, 241 | "_dstBlendFactor": 771, 242 | "_atlas": null 243 | }, 244 | { 245 | "__type__": "cc.PrefabInfo", 246 | "root": { 247 | "__id__": 1 248 | }, 249 | "asset": { 250 | "__uuid__": "15c7e084-4862-458f-936b-8caf1c838ac9" 251 | }, 252 | "fileId": "bcTbIJEIRHAIgJjIgPAoiC", 253 | "sync": false 254 | }, 255 | { 256 | "__type__": "cc.Node", 257 | "_name": "tower_b", 258 | "_objFlags": 0, 259 | "_parent": { 260 | "__id__": 1 261 | }, 262 | "_children": [], 263 | "_tag": -1, 264 | "_active": true, 265 | "_components": [ 266 | { 267 | "__id__": 9 268 | } 269 | ], 270 | "_prefab": { 271 | "__id__": 10 272 | }, 273 | "_id": "", 274 | "_opacity": 255, 275 | "_color": { 276 | "__type__": "cc.Color", 277 | "r": 255, 278 | "g": 255, 279 | "b": 255, 280 | "a": 255 281 | }, 282 | "_cascadeOpacityEnabled": true, 283 | "_anchorPoint": { 284 | "__type__": "cc.Vec2", 285 | "x": 0.5, 286 | "y": 0.5 287 | }, 288 | "_contentSize": { 289 | "__type__": "cc.Size", 290 | "width": 93, 291 | "height": 114 292 | }, 293 | "_rotationX": 0, 294 | "_rotationY": 0, 295 | "_scaleX": 1, 296 | "_scaleY": 1, 297 | "_position": { 298 | "__type__": "cc.Vec2", 299 | "x": 0, 300 | "y": -100 301 | }, 302 | "_skewX": 0, 303 | "_skewY": 0, 304 | "_localZOrder": 0, 305 | "_globalZOrder": 0, 306 | "_opacityModifyRGB": false, 307 | "groupIndex": 0 308 | }, 309 | { 310 | "__type__": "cc.Sprite", 311 | "_name": "", 312 | "_objFlags": 0, 313 | "node": { 314 | "__id__": 8 315 | }, 316 | "_enabled": true, 317 | "_spriteFrame": { 318 | "__uuid__": "b8b63828-2a00-46ca-9e50-8da6c52066ee" 319 | }, 320 | "_type": 0, 321 | "_sizeMode": 1, 322 | "_fillType": 0, 323 | "_fillCenter": { 324 | "__type__": "cc.Vec2", 325 | "x": 0, 326 | "y": 0 327 | }, 328 | "_fillStart": 0, 329 | "_fillRange": 0, 330 | "_isTrimmedMode": true, 331 | "_srcBlendFactor": 770, 332 | "_dstBlendFactor": 771, 333 | "_atlas": null 334 | }, 335 | { 336 | "__type__": "cc.PrefabInfo", 337 | "root": { 338 | "__id__": 1 339 | }, 340 | "asset": { 341 | "__uuid__": "15c7e084-4862-458f-936b-8caf1c838ac9" 342 | }, 343 | "fileId": "81mtrS1U9DG6x+b7kJT5rX", 344 | "sync": false 345 | }, 346 | { 347 | "__type__": "1c1feMKgxRPKq2mzMcsnkqY", 348 | "_name": "", 349 | "_objFlags": 0, 350 | "node": { 351 | "__id__": 1 352 | }, 353 | "_enabled": true, 354 | "towerNodes": [ 355 | { 356 | "__id__": 5 357 | }, 358 | { 359 | "__id__": 8 360 | } 361 | ] 362 | }, 363 | { 364 | "__type__": "cc.PrefabInfo", 365 | "root": { 366 | "__id__": 1 367 | }, 368 | "asset": { 369 | "__uuid__": "15c7e084-4862-458f-936b-8caf1c838ac9" 370 | }, 371 | "fileId": "5eg95FR1hB85lptzz2M6cz", 372 | "sync": false 373 | } 374 | ] -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower-menu-build.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "15c7e084-4862-458f-936b-8caf1c838ac9", 4 | "asyncLoadAssets": false, 5 | "subMetas": {} 6 | } -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower_a.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "tower_a", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | } 20 | ], 21 | "_tag": -1, 22 | "_active": true, 23 | "_components": [ 24 | { 25 | "__id__": 5 26 | } 27 | ], 28 | "_prefab": { 29 | "__id__": 6 30 | }, 31 | "_id": "", 32 | "_opacity": 255, 33 | "_color": { 34 | "__type__": "cc.Color", 35 | "r": 255, 36 | "g": 255, 37 | "b": 255, 38 | "a": 255 39 | }, 40 | "_cascadeOpacityEnabled": true, 41 | "_anchorPoint": { 42 | "__type__": "cc.Vec2", 43 | "x": 0.5, 44 | "y": 0.5 45 | }, 46 | "_contentSize": { 47 | "__type__": "cc.Size", 48 | "width": 0, 49 | "height": 0 50 | }, 51 | "_rotationX": 0, 52 | "_rotationY": 0, 53 | "_scaleX": 1, 54 | "_scaleY": 1, 55 | "_position": { 56 | "__type__": "cc.Vec2", 57 | "x": 0, 58 | "y": 0 59 | }, 60 | "_skewX": 0, 61 | "_skewY": 0, 62 | "_localZOrder": 0, 63 | "_globalZOrder": 0, 64 | "_opacityModifyRGB": false, 65 | "groupIndex": 0 66 | }, 67 | { 68 | "__type__": "cc.Node", 69 | "_name": "塔防_03", 70 | "_objFlags": 0, 71 | "_parent": { 72 | "__id__": 1 73 | }, 74 | "_children": [], 75 | "_tag": -1, 76 | "_active": true, 77 | "_components": [ 78 | { 79 | "__id__": 3 80 | } 81 | ], 82 | "_prefab": { 83 | "__id__": 4 84 | }, 85 | "_id": "", 86 | "_opacity": 255, 87 | "_color": { 88 | "__type__": "cc.Color", 89 | "r": 255, 90 | "g": 255, 91 | "b": 255, 92 | "a": 255 93 | }, 94 | "_cascadeOpacityEnabled": true, 95 | "_anchorPoint": { 96 | "__type__": "cc.Vec2", 97 | "x": 0.5, 98 | "y": 0.5 99 | }, 100 | "_contentSize": { 101 | "__type__": "cc.Size", 102 | "width": 93, 103 | "height": 114 104 | }, 105 | "_rotationX": 0, 106 | "_rotationY": 0, 107 | "_scaleX": 1, 108 | "_scaleY": 1, 109 | "_position": { 110 | "__type__": "cc.Vec2", 111 | "x": 0, 112 | "y": 9.1 113 | }, 114 | "_skewX": 0, 115 | "_skewY": 0, 116 | "_localZOrder": 0, 117 | "_globalZOrder": 0, 118 | "_opacityModifyRGB": false, 119 | "groupIndex": 0 120 | }, 121 | { 122 | "__type__": "cc.Sprite", 123 | "_name": "", 124 | "_objFlags": 0, 125 | "node": { 126 | "__id__": 2 127 | }, 128 | "_enabled": true, 129 | "_spriteFrame": { 130 | "__uuid__": "72cf92fc-2660-4d81-b12e-76918ee9c191" 131 | }, 132 | "_type": 0, 133 | "_sizeMode": 1, 134 | "_fillType": 0, 135 | "_fillCenter": { 136 | "__type__": "cc.Vec2", 137 | "x": 0, 138 | "y": 0 139 | }, 140 | "_fillStart": 0, 141 | "_fillRange": 0, 142 | "_isTrimmedMode": true, 143 | "_srcBlendFactor": 770, 144 | "_dstBlendFactor": 771, 145 | "_atlas": null 146 | }, 147 | { 148 | "__type__": "cc.PrefabInfo", 149 | "root": { 150 | "__id__": 1 151 | }, 152 | "asset": { 153 | "__uuid__": "cf187c3b-33c3-4ffa-a8f7-368bff06bc2e" 154 | }, 155 | "fileId": "a12hx9QJxMt61bHIRC1Ky1", 156 | "sync": false 157 | }, 158 | { 159 | "__type__": "9d544UZe/BEEZY/n79Nmw0o", 160 | "_name": "", 161 | "_objFlags": 0, 162 | "node": { 163 | "__id__": 1 164 | }, 165 | "_enabled": true, 166 | "spriteFrames": [ 167 | { 168 | "__uuid__": "72cf92fc-2660-4d81-b12e-76918ee9c191" 169 | }, 170 | { 171 | "__uuid__": "ddf1b37e-abd1-4def-bf69-37c7a3fca7ba" 172 | }, 173 | { 174 | "__uuid__": "def3b218-a73e-4efb-a86f-2b7686c8ad98" 175 | } 176 | ], 177 | "spriteNode": { 178 | "__id__": 2 179 | } 180 | }, 181 | { 182 | "__type__": "cc.PrefabInfo", 183 | "root": { 184 | "__id__": 1 185 | }, 186 | "asset": { 187 | "__uuid__": "cf187c3b-33c3-4ffa-a8f7-368bff06bc2e" 188 | }, 189 | "fileId": "83VfI0caBA0q/Fz96eix2f", 190 | "sync": false 191 | } 192 | ] -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower_a.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "cf187c3b-33c3-4ffa-a8f7-368bff06bc2e", 4 | "asyncLoadAssets": false, 5 | "subMetas": {} 6 | } -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower_b.prefab: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.Prefab", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "data": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Node", 13 | "_name": "tower_b", 14 | "_objFlags": 0, 15 | "_parent": null, 16 | "_children": [ 17 | { 18 | "__id__": 2 19 | } 20 | ], 21 | "_tag": -1, 22 | "_active": true, 23 | "_components": [ 24 | { 25 | "__id__": 5 26 | } 27 | ], 28 | "_prefab": { 29 | "__id__": 6 30 | }, 31 | "_id": "", 32 | "_opacity": 255, 33 | "_color": { 34 | "__type__": "cc.Color", 35 | "r": 255, 36 | "g": 255, 37 | "b": 255, 38 | "a": 255 39 | }, 40 | "_cascadeOpacityEnabled": true, 41 | "_anchorPoint": { 42 | "__type__": "cc.Vec2", 43 | "x": 0.5, 44 | "y": 0.5 45 | }, 46 | "_contentSize": { 47 | "__type__": "cc.Size", 48 | "width": 0, 49 | "height": 0 50 | }, 51 | "_rotationX": 0, 52 | "_rotationY": 0, 53 | "_scaleX": 1, 54 | "_scaleY": 1, 55 | "_position": { 56 | "__type__": "cc.Vec2", 57 | "x": 0, 58 | "y": 0 59 | }, 60 | "_skewX": 0, 61 | "_skewY": 0, 62 | "_localZOrder": 0, 63 | "_globalZOrder": 0, 64 | "_opacityModifyRGB": false, 65 | "groupIndex": 0 66 | }, 67 | { 68 | "__type__": "cc.Node", 69 | "_name": "塔防_13", 70 | "_objFlags": 0, 71 | "_parent": { 72 | "__id__": 1 73 | }, 74 | "_children": [], 75 | "_tag": -1, 76 | "_active": true, 77 | "_components": [ 78 | { 79 | "__id__": 3 80 | } 81 | ], 82 | "_prefab": { 83 | "__id__": 4 84 | }, 85 | "_id": "", 86 | "_opacity": 255, 87 | "_color": { 88 | "__type__": "cc.Color", 89 | "r": 255, 90 | "g": 255, 91 | "b": 255, 92 | "a": 255 93 | }, 94 | "_cascadeOpacityEnabled": true, 95 | "_anchorPoint": { 96 | "__type__": "cc.Vec2", 97 | "x": 0.5, 98 | "y": 0.5 99 | }, 100 | "_contentSize": { 101 | "__type__": "cc.Size", 102 | "width": 93, 103 | "height": 114 104 | }, 105 | "_rotationX": 0, 106 | "_rotationY": 0, 107 | "_scaleX": 1, 108 | "_scaleY": 1, 109 | "_position": { 110 | "__type__": "cc.Vec2", 111 | "x": 0, 112 | "y": 9.1 113 | }, 114 | "_skewX": 0, 115 | "_skewY": 0, 116 | "_localZOrder": 0, 117 | "_globalZOrder": 0, 118 | "_opacityModifyRGB": false, 119 | "groupIndex": 0 120 | }, 121 | { 122 | "__type__": "cc.Sprite", 123 | "_name": "", 124 | "_objFlags": 0, 125 | "node": { 126 | "__id__": 2 127 | }, 128 | "_enabled": true, 129 | "_spriteFrame": { 130 | "__uuid__": "b8b63828-2a00-46ca-9e50-8da6c52066ee" 131 | }, 132 | "_type": 0, 133 | "_sizeMode": 1, 134 | "_fillType": 0, 135 | "_fillCenter": { 136 | "__type__": "cc.Vec2", 137 | "x": 0, 138 | "y": 0 139 | }, 140 | "_fillStart": 0, 141 | "_fillRange": 0, 142 | "_isTrimmedMode": true, 143 | "_srcBlendFactor": 770, 144 | "_dstBlendFactor": 771, 145 | "_atlas": null 146 | }, 147 | { 148 | "__type__": "cc.PrefabInfo", 149 | "root": { 150 | "__id__": 1 151 | }, 152 | "asset": { 153 | "__uuid__": "18fe05b2-59ee-4747-b20d-af9ed257b607" 154 | }, 155 | "fileId": "9f2+chXc9KiLeUX3qXewxm", 156 | "sync": false 157 | }, 158 | { 159 | "__type__": "9d544UZe/BEEZY/n79Nmw0o", 160 | "_name": "", 161 | "_objFlags": 0, 162 | "node": { 163 | "__id__": 1 164 | }, 165 | "_enabled": true, 166 | "spriteFrames": [ 167 | { 168 | "__uuid__": "b8b63828-2a00-46ca-9e50-8da6c52066ee" 169 | }, 170 | { 171 | "__uuid__": "6e6f3070-4445-4ed8-8817-8ff72900a6d1" 172 | }, 173 | { 174 | "__uuid__": "9e781b4b-330a-4611-b201-2a47f8e447a5" 175 | } 176 | ], 177 | "spriteNode": { 178 | "__id__": 2 179 | } 180 | }, 181 | { 182 | "__type__": "cc.PrefabInfo", 183 | "root": { 184 | "__id__": 1 185 | }, 186 | "asset": { 187 | "__uuid__": "18fe05b2-59ee-4747-b20d-af9ed257b607" 188 | }, 189 | "fileId": "2ev0mz5URMXKPooFyKl0Hk", 190 | "sync": false 191 | } 192 | ] -------------------------------------------------------------------------------- /tower-defence/assets/prefabs/tower_b.prefab.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "18fe05b2-59ee-4747-b20d-af9ed257b607", 4 | "asyncLoadAssets": false, 5 | "subMetas": {} 6 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "2d28502e-7c49-4309-9222-61b546f26bf4", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/beijing.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/beijing.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "5864d796-ac6d-4501-a1b4-39aecfc6b49c", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "beijing": { 9 | "ver": "1.0.3", 10 | "uuid": "7d76d6c7-e4ce-429b-b4e3-aedb0f0ad2b7", 11 | "rawTextureUuid": "5864d796-ac6d-4501-a1b4-39aecfc6b49c", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 1920, 20 | "height": 1080, 21 | "rawWidth": 1920, 22 | "rawHeight": 1080, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_03.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_03.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "83562b49-52fe-4761-9b96-d8d0f7d1b0ee", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_03": { 9 | "ver": "1.0.3", 10 | "uuid": "72cf92fc-2660-4d81-b12e-76918ee9c191", 11 | "rawTextureUuid": "83562b49-52fe-4761-9b96-d8d0f7d1b0ee", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_05.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_05.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "ab2cea77-00ff-453a-b004-ab46c6280012", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_05": { 9 | "ver": "1.0.3", 10 | "uuid": "ddf1b37e-abd1-4def-bf69-37c7a3fca7ba", 11 | "rawTextureUuid": "ab2cea77-00ff-453a-b004-ab46c6280012", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_07.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_07.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "ac5d6a4b-7e98-4d7d-bc15-f48bc3b353cc", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_07": { 9 | "ver": "1.0.3", 10 | "uuid": "def3b218-a73e-4efb-a86f-2b7686c8ad98", 11 | "rawTextureUuid": "ac5d6a4b-7e98-4d7d-bc15-f48bc3b353cc", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_13.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_13.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "19ea774f-a76a-4ec4-96d3-ff3a920a3cb7", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_13": { 9 | "ver": "1.0.3", 10 | "uuid": "b8b63828-2a00-46ca-9e50-8da6c52066ee", 11 | "rawTextureUuid": "19ea774f-a76a-4ec4-96d3-ff3a920a3cb7", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_134.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_134.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "42c874ae-2a21-4501-b99b-47918dafced4", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_134": { 9 | "ver": "1.0.3", 10 | "uuid": "fb9e6ce6-7732-46f2-8c3d-8073ee8166c3", 11 | "rawTextureUuid": "42c874ae-2a21-4501-b99b-47918dafced4", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": -0.5, 17 | "trimX": 0, 18 | "trimY": 1, 19 | "width": 93, 20 | "height": 93, 21 | "rawWidth": 93, 22 | "rawHeight": 94, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_137.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_137.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "a5a121b1-ff7c-44fa-8e9a-4064d3324c41", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_137": { 9 | "ver": "1.0.3", 10 | "uuid": "9c6b35c3-dd14-49ad-9371-3d1956503406", 11 | "rawTextureUuid": "a5a121b1-ff7c-44fa-8e9a-4064d3324c41", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0.5, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 92, 21 | "rawWidth": 93, 22 | "rawHeight": 93, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_15.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_15.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "7eb1d527-22db-4aae-9ca7-472c98db88df", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_15": { 9 | "ver": "1.0.3", 10 | "uuid": "6e6f3070-4445-4ed8-8817-8ff72900a6d1", 11 | "rawTextureUuid": "7eb1d527-22db-4aae-9ca7-472c98db88df", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_17.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_17.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "cbda8b52-c685-42d1-932a-dc3af4ae2b63", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_17": { 9 | "ver": "1.0.3", 10 | "uuid": "9e781b4b-330a-4611-b201-2a47f8e447a5", 11 | "rawTextureUuid": "cbda8b52-c685-42d1-932a-dc3af4ae2b63", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 114, 21 | "rawWidth": 93, 22 | "rawHeight": 114, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_20.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_20.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "dbb9b34d-72fb-4dca-b5cb-ec99950c18a8", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_20": { 9 | "ver": "1.0.3", 10 | "uuid": "5f64394d-b67a-4b23-855b-6394f64d8bb9", 11 | "rawTextureUuid": "dbb9b34d-72fb-4dca-b5cb-ec99950c18a8", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 33, 20 | "height": 62, 21 | "rawWidth": 33, 22 | "rawHeight": 62, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_23.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_23.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "6b57d439-eeab-4573-bd83-e48c71b80a75", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_23": { 9 | "ver": "1.0.3", 10 | "uuid": "4128d5b8-b918-4cb4-b7a4-4153a47d0173", 11 | "rawTextureUuid": "6b57d439-eeab-4573-bd83-e48c71b80a75", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 81, 20 | "height": 81, 21 | "rawWidth": 81, 22 | "rawHeight": 81, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_31.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_31.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "4f641832-605a-4bce-8d29-4c3e518724a9", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_31": { 9 | "ver": "1.0.3", 10 | "uuid": "d9d68518-f6a0-4191-95e9-b34cc4de6064", 11 | "rawTextureUuid": "4f641832-605a-4bce-8d29-4c3e518724a9", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 81, 20 | "height": 81, 21 | "rawWidth": 81, 22 | "rawHeight": 81, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_34.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_34.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "2e871daa-7095-4064-8630-29e2938990d0", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_34": { 9 | "ver": "1.0.3", 10 | "uuid": "04f754d1-7376-4495-8fa6-e02f0a4a544d", 11 | "rawTextureUuid": "2e871daa-7095-4064-8630-29e2938990d0", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 93, 20 | "height": 93, 21 | "rawWidth": 93, 22 | "rawHeight": 93, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_39.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_39.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "8f7f1243-012c-4c38-ac06-b7ce35b44d2b", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_39": { 9 | "ver": "1.0.3", 10 | "uuid": "f38c2d92-b26d-4c67-a529-5d217f6d6383", 11 | "rawTextureUuid": "8f7f1243-012c-4c38-ac06-b7ce35b44d2b", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 514, 20 | "height": 514, 21 | "rawWidth": 514, 22 | "rawHeight": 514, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_42.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_42.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "0c13bed9-d29b-4a83-803f-2897697d95fb", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_42": { 9 | "ver": "1.0.3", 10 | "uuid": "8a18cbae-d462-4299-a25d-9b3f97b4e6a0", 11 | "rawTextureUuid": "0c13bed9-d29b-4a83-803f-2897697d95fb", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0.5, 17 | "trimX": 0, 18 | "trimY": 4, 19 | "width": 404, 20 | "height": 404, 21 | "rawWidth": 404, 22 | "rawHeight": 413, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_45.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_45.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "5adb18a3-b630-4586-ab65-58a12a79cf3c", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_45": { 9 | "ver": "1.0.3", 10 | "uuid": "37946c50-c89b-43d1-a6ce-da229d882204", 11 | "rawTextureUuid": "5adb18a3-b630-4586-ab65-58a12a79cf3c", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 320, 20 | "height": 320, 21 | "rawWidth": 320, 22 | "rawHeight": 320, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/tower-defence/assets/resources/塔防_48.png -------------------------------------------------------------------------------- /tower-defence/assets/resources/塔防_48.png.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "a77b067d-1e0f-46a0-bb75-11a5d89cf066", 4 | "type": "sprite", 5 | "wrapMode": "clamp", 6 | "filterMode": "bilinear", 7 | "subMetas": { 8 | "塔防_48": { 9 | "ver": "1.0.3", 10 | "uuid": "47ddc384-8596-476e-8383-8cb12770ba8b", 11 | "rawTextureUuid": "a77b067d-1e0f-46a0-bb75-11a5d89cf066", 12 | "trimType": "auto", 13 | "trimThreshold": 1, 14 | "rotated": false, 15 | "offsetX": 0, 16 | "offsetY": 0.5, 17 | "trimX": 0, 18 | "trimY": 0, 19 | "width": 81, 20 | "height": 81, 21 | "rawWidth": 81, 22 | "rawHeight": 82, 23 | "borderTop": 0, 24 | "borderBottom": 0, 25 | "borderLeft": 0, 26 | "borderRight": 0, 27 | "subMetas": {} 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /tower-defence/assets/scenes.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "407f7434-1b9e-4344-bcb8-6df98df035ef", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence/assets/scenes/scene.fire: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "__type__": "cc.SceneAsset", 4 | "_name": "", 5 | "_objFlags": 0, 6 | "_rawFiles": null, 7 | "scene": { 8 | "__id__": 1 9 | } 10 | }, 11 | { 12 | "__type__": "cc.Scene", 13 | "_objFlags": 0, 14 | "_parent": null, 15 | "_children": [ 16 | { 17 | "__id__": 2 18 | } 19 | ], 20 | "_tag": -1, 21 | "_active": true, 22 | "_components": [], 23 | "_prefab": null, 24 | "_id": "0f6dbb98-75cb-4820-b0a2-8ce893d46ad1", 25 | "_opacity": 255, 26 | "_color": { 27 | "__type__": "cc.Color", 28 | "r": 255, 29 | "g": 255, 30 | "b": 255, 31 | "a": 255 32 | }, 33 | "_cascadeOpacityEnabled": true, 34 | "_anchorPoint": { 35 | "__type__": "cc.Vec2", 36 | "x": 0, 37 | "y": 0 38 | }, 39 | "_contentSize": { 40 | "__type__": "cc.Size", 41 | "width": 0, 42 | "height": 0 43 | }, 44 | "_localZOrder": 0, 45 | "_globalZOrder": 0, 46 | "_opacityModifyRGB": false, 47 | "groupIndex": 0, 48 | "autoReleaseAssets": false 49 | }, 50 | { 51 | "__type__": "cc.Node", 52 | "_name": "Canvas", 53 | "_objFlags": 0, 54 | "_parent": { 55 | "__id__": 1 56 | }, 57 | "_children": [ 58 | { 59 | "__id__": 3 60 | } 61 | ], 62 | "_tag": -1, 63 | "_active": true, 64 | "_components": [ 65 | { 66 | "__id__": 8 67 | } 68 | ], 69 | "_prefab": null, 70 | "_id": "d2QxdzLEpGOL5d6pJCYCcL", 71 | "_opacity": 255, 72 | "_color": { 73 | "__type__": "cc.Color", 74 | "r": 255, 75 | "g": 255, 76 | "b": 255, 77 | "a": 255 78 | }, 79 | "_cascadeOpacityEnabled": true, 80 | "_anchorPoint": { 81 | "__type__": "cc.Vec2", 82 | "x": 0.5, 83 | "y": 0.5 84 | }, 85 | "_contentSize": { 86 | "__type__": "cc.Size", 87 | "width": 1920, 88 | "height": 1080 89 | }, 90 | "_rotationX": 0, 91 | "_rotationY": 0, 92 | "_scaleX": 1, 93 | "_scaleY": 1, 94 | "_position": { 95 | "__type__": "cc.Vec2", 96 | "x": 960, 97 | "y": 540 98 | }, 99 | "_skewX": 0, 100 | "_skewY": 0, 101 | "_localZOrder": 0, 102 | "_globalZOrder": 0, 103 | "_opacityModifyRGB": false, 104 | "groupIndex": 0 105 | }, 106 | { 107 | "__type__": "cc.Node", 108 | "_name": "root", 109 | "_objFlags": 0, 110 | "_parent": { 111 | "__id__": 2 112 | }, 113 | "_children": [ 114 | { 115 | "__id__": 4 116 | } 117 | ], 118 | "_tag": -1, 119 | "_active": true, 120 | "_components": [], 121 | "_prefab": null, 122 | "_id": "98YzqxYeVFVJzvQvRt1ncv", 123 | "_opacity": 255, 124 | "_color": { 125 | "__type__": "cc.Color", 126 | "r": 255, 127 | "g": 255, 128 | "b": 255, 129 | "a": 255 130 | }, 131 | "_cascadeOpacityEnabled": true, 132 | "_anchorPoint": { 133 | "__type__": "cc.Vec2", 134 | "x": 0.5, 135 | "y": 0.5 136 | }, 137 | "_contentSize": { 138 | "__type__": "cc.Size", 139 | "width": 0, 140 | "height": 0 141 | }, 142 | "_rotationX": 0, 143 | "_rotationY": 0, 144 | "_scaleX": 1, 145 | "_scaleY": 1, 146 | "_position": { 147 | "__type__": "cc.Vec2", 148 | "x": 0, 149 | "y": 0 150 | }, 151 | "_skewX": 0, 152 | "_skewY": 0, 153 | "_localZOrder": 0, 154 | "_globalZOrder": 0, 155 | "_opacityModifyRGB": false, 156 | "groupIndex": 0 157 | }, 158 | { 159 | "__type__": "cc.Node", 160 | "_name": "game-world", 161 | "_objFlags": 0, 162 | "_parent": { 163 | "__id__": 3 164 | }, 165 | "_children": [ 166 | { 167 | "__id__": 5 168 | } 169 | ], 170 | "_tag": -1, 171 | "_active": true, 172 | "_components": [ 173 | { 174 | "__id__": 7 175 | } 176 | ], 177 | "_prefab": null, 178 | "_id": "ab4S161FFEvL/CCrQUvFLh", 179 | "_opacity": 255, 180 | "_color": { 181 | "__type__": "cc.Color", 182 | "r": 255, 183 | "g": 255, 184 | "b": 255, 185 | "a": 255 186 | }, 187 | "_cascadeOpacityEnabled": true, 188 | "_anchorPoint": { 189 | "__type__": "cc.Vec2", 190 | "x": 0.5, 191 | "y": 0.5 192 | }, 193 | "_contentSize": { 194 | "__type__": "cc.Size", 195 | "width": 0, 196 | "height": 0 197 | }, 198 | "_rotationX": 0, 199 | "_rotationY": 0, 200 | "_scaleX": 1, 201 | "_scaleY": 1, 202 | "_position": { 203 | "__type__": "cc.Vec2", 204 | "x": 0, 205 | "y": 0 206 | }, 207 | "_skewX": 0, 208 | "_skewY": 0, 209 | "_localZOrder": 0, 210 | "_globalZOrder": 0, 211 | "_opacityModifyRGB": false, 212 | "groupIndex": 0 213 | }, 214 | { 215 | "__type__": "cc.Node", 216 | "_name": "beijing", 217 | "_objFlags": 0, 218 | "_parent": { 219 | "__id__": 4 220 | }, 221 | "_children": [], 222 | "_tag": -1, 223 | "_active": true, 224 | "_components": [ 225 | { 226 | "__id__": 6 227 | } 228 | ], 229 | "_prefab": null, 230 | "_id": "5cDyow69FBia8Ldy27K6XZ", 231 | "_opacity": 255, 232 | "_color": { 233 | "__type__": "cc.Color", 234 | "r": 255, 235 | "g": 255, 236 | "b": 255, 237 | "a": 255 238 | }, 239 | "_cascadeOpacityEnabled": true, 240 | "_anchorPoint": { 241 | "__type__": "cc.Vec2", 242 | "x": 0.5, 243 | "y": 0.5 244 | }, 245 | "_contentSize": { 246 | "__type__": "cc.Size", 247 | "width": 1920, 248 | "height": 1080 249 | }, 250 | "_rotationX": 0, 251 | "_rotationY": 0, 252 | "_scaleX": 1, 253 | "_scaleY": 1, 254 | "_position": { 255 | "__type__": "cc.Vec2", 256 | "x": 0, 257 | "y": 0 258 | }, 259 | "_skewX": 0, 260 | "_skewY": 0, 261 | "_localZOrder": 0, 262 | "_globalZOrder": 0, 263 | "_opacityModifyRGB": false, 264 | "groupIndex": 0 265 | }, 266 | { 267 | "__type__": "cc.Sprite", 268 | "_name": "", 269 | "_objFlags": 0, 270 | "node": { 271 | "__id__": 5 272 | }, 273 | "_enabled": true, 274 | "_spriteFrame": { 275 | "__uuid__": "7d76d6c7-e4ce-429b-b4e3-aedb0f0ad2b7" 276 | }, 277 | "_type": 0, 278 | "_sizeMode": 1, 279 | "_fillType": 0, 280 | "_fillCenter": { 281 | "__type__": "cc.Vec2", 282 | "x": 0, 283 | "y": 0 284 | }, 285 | "_fillStart": 0, 286 | "_fillRange": 0, 287 | "_isTrimmedMode": true, 288 | "_srcBlendFactor": 770, 289 | "_dstBlendFactor": 771, 290 | "_atlas": null 291 | }, 292 | { 293 | "__type__": "454d2lii5BC+JcJJcS25nM/", 294 | "_name": "", 295 | "_objFlags": 0, 296 | "node": { 297 | "__id__": 4 298 | }, 299 | "_enabled": true, 300 | "levelPrefabs": [ 301 | { 302 | "__uuid__": "1e2d59a2-95e7-4411-95c1-331b862051b4" 303 | } 304 | ] 305 | }, 306 | { 307 | "__type__": "cc.Canvas", 308 | "_name": "", 309 | "_objFlags": 0, 310 | "node": { 311 | "__id__": 2 312 | }, 313 | "_enabled": true, 314 | "_designResolution": { 315 | "__type__": "cc.Size", 316 | "width": 1920, 317 | "height": 1080 318 | }, 319 | "_fitWidth": false, 320 | "_fitHeight": true 321 | } 322 | ] -------------------------------------------------------------------------------- /tower-defence/assets/scenes/scene.fire.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.0", 3 | "uuid": "0f6dbb98-75cb-4820-b0a2-8ce893d46ad1", 4 | "asyncLoadAssets": false, 5 | "autoReleaseAssets": false, 6 | "subMetas": {} 7 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.1", 3 | "uuid": "58c0bc82-9487-446c-ace1-666be1a1fdc6", 4 | "subMetas": {} 5 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/event-listener.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by chu on 2017/10/9 0009. 3 | */ 4 | const EventListener = function (obj) { 5 | let Register = {}; 6 | obj.on = function (name, method) { 7 | if (!Register.hasOwnProperty(name)){ 8 | Register[name] = []; 9 | } 10 | Register[name].push(method); 11 | } 12 | ; 13 | obj.fire = function (name) { 14 | if (Register.hasOwnProperty(name)){ 15 | let handlerList = Register[name]; 16 | for (let i = 0 ; i < handlerList.length ; i ++){ 17 | let handler = handlerList[i]; 18 | let args = []; 19 | for (let j = 1 ; j < arguments.length ; j ++){ 20 | args.push(arguments[j]); 21 | } 22 | handler.apply(this, args); 23 | } 24 | } 25 | }; 26 | obj.off = function (name, method) { 27 | if (Register.hasOwnProperty(name)){ 28 | let handleList = Register[name]; 29 | for (let i = 0 ; i < handleList.length ; i ++){ 30 | if (handleList[i] === method){ 31 | handleList.splice(i, 1); 32 | } 33 | } 34 | } 35 | }; 36 | return obj; 37 | }; 38 | export default EventListener; -------------------------------------------------------------------------------- /tower-defence/assets/scripts/event-listener.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "ae0b7b23-ec64-4f10-a682-8a082d5ea5de", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/game-world.js: -------------------------------------------------------------------------------- 1 | cc.Class({ 2 | extends: cc.Component, 3 | 4 | properties: { 5 | levelPrefabs: { 6 | default: [], 7 | type: cc.Prefab 8 | } 9 | }, 10 | 11 | // use this for initialization 12 | onLoad: function () { 13 | // 进入游戏 14 | let level = cc.instantiate(this.levelPrefabs[0]); 15 | level.parent = this.node; 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /tower-defence/assets/scripts/game-world.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "454d2962-8b90-42f8-9709-25c4b6e6733f", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/global.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by chu on 2017/10/9 0009. 3 | */ 4 | import EventListener from './event-listener' 5 | let global = {} || global; 6 | global.gameEvent = EventListener({}); 7 | export default global; -------------------------------------------------------------------------------- /tower-defence/assets/scripts/global.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "4aaa3113-895e-4a9f-9c5e-2cb7ddc55b22", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/level.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | const TowerPosNodeState = { 3 | Invailde: -1, 4 | Null: 1, 5 | BuildMenu: 2, 6 | UpdateMenu: 3, 7 | Tower: 4 8 | }; 9 | cc.Class({ 10 | extends: cc.Component, 11 | properties: { 12 | pathNodes: { 13 | default: [], 14 | type: cc.Node 15 | }, 16 | towerPosNodes: { 17 | default: [], 18 | type: cc.Node 19 | }, 20 | buildMenuPrefab: { 21 | default: null, 22 | type: cc.Prefab 23 | }, 24 | tower_a_prefab: { 25 | default: null, 26 | type: cc.Prefab 27 | }, 28 | tower_b_prefab: { 29 | default: null, 30 | type: cc.Prefab 31 | } 32 | }, 33 | 34 | 35 | // use this for initialization 36 | onLoad: function () { 37 | //加监听 38 | for (let i = 0 ; i < this.towerPosNodes.length ; i ++){ 39 | let node = this.towerPosNodes[i]; 40 | 41 | node.state = TowerPosNodeState.Null; 42 | this.setTouchEvent(node, i); 43 | }; 44 | global.gameEvent.on("build_tower", (target)=>{ 45 | cc.log("build tower" + target.name); 46 | let node = this.getBuildMenuNodePos(); 47 | this.setState(node, TowerPosNodeState.Null); 48 | this.buildTower(node, target) 49 | 50 | }) 51 | }, 52 | setTouchEvent: function (node,index) { 53 | cc.log("设置监听"); 54 | node.on(cc.Node.EventType.TOUCH_START, (event)=>{ 55 | // cc.log("index = " + index); 56 | let target = event.target; 57 | if (target.state === TowerPosNodeState.Null){ 58 | this.closeBuildMenu(); 59 | this.setState(node, TowerPosNodeState.BuildMenu); 60 | } 61 | }); 62 | }, 63 | setState: function (node, state) { 64 | if (node.state === state){ 65 | return; 66 | } 67 | switch (state){ 68 | case TowerPosNodeState.Null: 69 | if (node.buildMenu){ 70 | node.buildMenu.destroy(); 71 | } 72 | break; 73 | case TowerPosNodeState.BuildMenu: 74 | this.showBuildMenu(node); 75 | break; 76 | case TowerPosNodeState.UpdateMenu: 77 | break; 78 | case TowerPosNodeState.Tower: 79 | break; 80 | default: 81 | break; 82 | } 83 | node.state = state; 84 | }, 85 | showBuildMenu: function (node) { 86 | let buildMenu = cc.instantiate(this.buildMenuPrefab); 87 | buildMenu.parent = this.node; 88 | buildMenu.position = node.position; 89 | node.buildMenu = buildMenu; 90 | }, 91 | buildTower: function (node,target) { 92 | let name = target.name; 93 | let prefab = this[name + "_prefab"]; 94 | let tower = cc.instantiate(prefab); 95 | tower.parent = this.node; 96 | tower.position = node.position; 97 | this.setState(node, TowerPosNodeState.Tower); 98 | }, 99 | closeBuildMenu : function () { 100 | for (let i = 0 ; i < this.towerPosNodes.length ; i ++){ 101 | let node = this.towerPosNodes[i]; 102 | if (node.state === TowerPosNodeState.BuildMenu){ 103 | this.setState(node, TowerPosNodeState.Null); 104 | } 105 | } 106 | }, 107 | getBuildMenuNodePos : function () { 108 | for (let i = 0 ; i < this.towerPosNodes.length ; i ++){ 109 | let node = this.towerPosNodes[i]; 110 | if (node.state === TowerPosNodeState.BuildMenu){ 111 | return node; 112 | } 113 | } 114 | } 115 | }); 116 | -------------------------------------------------------------------------------- /tower-defence/assets/scripts/level.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "0cf7a090-08e9-49ae-8242-0ce11f896bec", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/tower-menu-build.js: -------------------------------------------------------------------------------- 1 | import global from './global' 2 | cc.Class({ 3 | extends: cc.Component, 4 | 5 | properties: { 6 | towerNodes: { 7 | default: [], 8 | type: cc.Node 9 | } 10 | }, 11 | 12 | onLoad: function () { 13 | for (let i = 0 ; i < this.towerNodes.length ; i ++){ 14 | let node = this.towerNodes[i]; 15 | this.setEvent(node); 16 | } 17 | }, 18 | setEvent: function (node) { 19 | node.on(cc.Node.EventType.TOUCH_START, (event)=>{ 20 | let target = event.target; 21 | cc.log("target name = " + target.name); 22 | global.gameEvent.fire("build_tower", target); 23 | }); 24 | } 25 | 26 | 27 | }); 28 | -------------------------------------------------------------------------------- /tower-defence/assets/scripts/tower-menu-build.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "1c1fe30a-8314-4f2a-ada6-ccc72c9e4a98", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/assets/scripts/tower.js: -------------------------------------------------------------------------------- 1 | cc.Class({ 2 | extends: cc.Component, 3 | 4 | properties: { 5 | spriteFrames: { 6 | default: [], 7 | type: cc.SpriteFrame 8 | }, 9 | spriteNode: { 10 | default: null, 11 | type: cc.Node 12 | } 13 | }, 14 | 15 | // use this for initialization 16 | onLoad: function () { 17 | 18 | }, 19 | 20 | }); 21 | -------------------------------------------------------------------------------- /tower-defence/assets/scripts/tower.js.meta: -------------------------------------------------------------------------------- 1 | { 2 | "ver": "1.0.5", 3 | "uuid": "9d544519-7bf0-4411-963f-9fbf4d9b0d28", 4 | "isPlugin": false, 5 | "loadPluginInWeb": true, 6 | "loadPluginInNative": true, 7 | "loadPluginInEditor": false, 8 | "subMetas": {} 9 | } -------------------------------------------------------------------------------- /tower-defence/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "experimentalDecorators": true 6 | }, 7 | "exclude": [ 8 | "node_modules", 9 | ".vscode", 10 | "library", 11 | "local", 12 | "settings", 13 | "temp" 14 | ] 15 | } -------------------------------------------------------------------------------- /tower-defence/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "engine": "cocos-creator-js", 3 | "packages": "packages" 4 | } -------------------------------------------------------------------------------- /tower-defence/settings/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "start-scene": "current", 3 | "group-list": [ 4 | "default" 5 | ], 6 | "collision-matrix": [ 7 | [ 8 | true 9 | ] 10 | ], 11 | "excluded-modules": [], 12 | "design-resolution-width": 960, 13 | "design-resolution-height": 640, 14 | "fit-width": false, 15 | "fit-height": true, 16 | "use-project-simulator-setting": false, 17 | "simulator-orientation": false, 18 | "use-customize-simulator": false, 19 | "simulator-resolution": { 20 | "width": 960, 21 | "height": 640 22 | } 23 | } -------------------------------------------------------------------------------- /资源/mash_room_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_0.png -------------------------------------------------------------------------------- /资源/mash_room_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_1.png -------------------------------------------------------------------------------- /资源/mash_room_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_2.png -------------------------------------------------------------------------------- /资源/mash_room_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_3.png -------------------------------------------------------------------------------- /资源/mash_room_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_4.png -------------------------------------------------------------------------------- /资源/mash_room_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_5.png -------------------------------------------------------------------------------- /资源/mash_room_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/mash_room_6.png -------------------------------------------------------------------------------- /资源/切图/beijing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/beijing.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_01.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_02.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_03.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_04.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_05.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_06.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_07.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_08.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_09.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_10.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_11.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_12.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_13.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_134.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_137.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_14.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_15.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_16.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_17.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_18.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_19.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_20.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_21.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_22.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_23.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_24.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_25.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_26.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_27.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_28.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_29.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_30.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_31.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_32.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_33.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_35.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_36.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_38.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_39.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_40.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_41.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_42.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_43.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_44.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_45.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_46.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_47.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_48.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_49.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_50.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_51.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_52.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_53.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_54.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_55.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_56.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_57.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_58.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_59.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_60.png -------------------------------------------------------------------------------- /资源/切图/images/塔防_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/images/塔防_61.png -------------------------------------------------------------------------------- /资源/切图/progress_bar_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/progress_bar_red.png -------------------------------------------------------------------------------- /资源/切图/塔防_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_03.png -------------------------------------------------------------------------------- /资源/切图/塔防_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_05.png -------------------------------------------------------------------------------- /资源/切图/塔防_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_07.png -------------------------------------------------------------------------------- /资源/切图/塔防_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_13.png -------------------------------------------------------------------------------- /资源/切图/塔防_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_134.png -------------------------------------------------------------------------------- /资源/切图/塔防_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_137.png -------------------------------------------------------------------------------- /资源/切图/塔防_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_15.png -------------------------------------------------------------------------------- /资源/切图/塔防_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_17.png -------------------------------------------------------------------------------- /资源/切图/塔防_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_20.png -------------------------------------------------------------------------------- /资源/切图/塔防_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_23.png -------------------------------------------------------------------------------- /资源/切图/塔防_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_31.png -------------------------------------------------------------------------------- /资源/切图/塔防_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_34.png -------------------------------------------------------------------------------- /资源/切图/塔防_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_37.png -------------------------------------------------------------------------------- /资源/切图/塔防_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_39.png -------------------------------------------------------------------------------- /资源/切图/塔防_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_42.png -------------------------------------------------------------------------------- /资源/切图/塔防_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_45.png -------------------------------------------------------------------------------- /资源/切图/塔防_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/切图/塔防_48.png -------------------------------------------------------------------------------- /资源/塔防.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoyuan336/tower-defence-simple/6d14b759ae01f2809743a188f13bc64d943a1bf2/资源/塔防.psd --------------------------------------------------------------------------------