From 6355d80a2c9d1491b88ebec3ddb9f04505a5ae7e Mon Sep 17 00:00:00 2001 From: walkpan Date: Sun, 11 Aug 2024 16:50:42 +0800 Subject: [PATCH] dd --- .../game/heros/cards/hero_card.prefab | 31 +- .../game/{monster => heros}/hero.prefab | 893 ++++++++++++------ .../game/{monster => heros}/hero.prefab.meta | 0 assets/resources/game/map/map_rpg.prefab | 666 +++---------- assets/resources/game/skills/atked.meta | 2 +- assets/resources/game/skills/atked.prefab | 30 +- .../game/skills/atked/skeleton.atlas | 21 +- .../game/skills/atked/skeleton.atlas.meta | 2 +- .../resources/game/skills/atked/skeleton.json | 19 +- .../game/skills/atked/skeleton.json.meta | 2 +- .../resources/game/skills/atked/skeleton.png | Bin 7585 -> 1267 bytes .../game/skills/atked/skeleton.png.meta | 8 +- assets/resources/game/skills/atked2.meta | 9 - .../game/skills/atked2/skeleton.atlas | 27 - .../game/skills/atked2/skeleton.atlas.meta | 12 - .../game/skills/atked2/skeleton.json | 42 - .../game/skills/atked2/skeleton.json.meta | 11 - .../resources/game/skills/atked2/skeleton.png | Bin 9000 -> 0 bytes .../game/skills/atked2/skeleton.png.meta | 42 - assets/resources/game/skills/base.prefab | 16 +- assets/resources/game/skills/base_skill.plist | 71 -- .../game/skills/base_skill.plist.meta | 155 --- assets/resources/game/skills/base_skill.png | Bin 21755 -> 0 bytes .../resources/game/skills/base_skill.png.meta | 42 - .../resources/game/skills/breathspark02.png | Bin 0 -> 13010 bytes .../skills/breathspark02.png.meta} | 62 +- assets/resources/game/skills/dead.anim | 136 +++ assets/resources/game/skills/dead.anim.meta | 13 + assets/resources/game/skills/dead.prefab | 292 ++++++ assets/resources/game/skills/dead.prefab.meta | 13 + assets/resources/gui/gui/health_bar-02.png | Bin 4947 -> 0 bytes .../resources/gui/gui/health_bar-02.png.meta | 134 --- assets/resources/gui/gui/health_bar-04.png | Bin 226803 -> 0 bytes assets/resources/gui/gui/health_bar-05.png | Bin 227445 -> 0 bytes .../resources/gui/gui/health_bar-05.png.meta | 134 --- assets/resources/gui/gui/health_bar-06.png | Bin 227445 -> 0 bytes .../resources/gui/gui/health_bar-06.png.meta | 134 --- assets/resources/gui/gui/health_bar-07.png | Bin 227445 -> 0 bytes .../resources/gui/gui/health_bar-07.png.meta | 134 --- .../gui/prefab/role_controller.prefab | 12 +- assets/script/Main.ts | 19 +- assets/script/game/common/config/BoxSet.ts | 4 +- assets/script/game/common/config/CardSet.ts | 20 + .../config/CardSet.ts.meta} | 2 +- assets/script/game/heros/HeroSpine.ts | 20 - assets/script/game/map/CardController.ts | 29 +- assets/script/game/map/view/MapViewComp.ts | 23 +- .../script/game/map/view/map/charactor.meta | 12 - .../game/map/view/map/charactor/Charactor.ts | 146 --- .../map/view/map/charactor/ICharactorClip.ts | 10 - .../game/map/view/map/charactor/MovieClip.ts | 230 ----- .../game/map/view/map/layer/EntityLayer.ts | 6 +- .../game/map/view/map/layer/MapLayer.ts | 87 +- .../game/map/view/map/layer/SkillLayer.ts | 6 +- assets/script/game/monster/Hero.ts | 2 +- assets/script/game/monster/HeroCard.ts | 32 +- .../script/game/monster/HeroCardViewComp.ts | 77 ++ .../HeroCardViewComp.ts.meta} | 6 +- assets/script/game/monster/Monster.ts | 4 +- assets/script/game/monster/MonsterSpine.ts | 14 +- assets/script/game/monster/MonsterViewComp.ts | 186 ++-- assets/script/game/role/view/RoleSpine.ts | 14 - assets/script/game/skills/Skill.ts | 20 +- assets/script/game/skills/SkillCom.ts | 38 +- assets/script/game/skills/atked.ts | 20 + .../atked.ts.meta} | 6 +- assets/script/game/skills/dead.ts | 18 + assets/script/game/skills/dead.ts.meta | 9 + doc/ecs/ecs.md | 2 +- settings/v2/packages/project.json | 4 +- 70 files changed, 1696 insertions(+), 2535 deletions(-) rename assets/resources/game/{monster => heros}/hero.prefab (75%) rename assets/resources/game/{monster => heros}/hero.prefab.meta (100%) delete mode 100644 assets/resources/game/skills/atked2.meta delete mode 100644 assets/resources/game/skills/atked2/skeleton.atlas delete mode 100644 assets/resources/game/skills/atked2/skeleton.atlas.meta delete mode 100644 assets/resources/game/skills/atked2/skeleton.json delete mode 100644 assets/resources/game/skills/atked2/skeleton.json.meta delete mode 100644 assets/resources/game/skills/atked2/skeleton.png delete mode 100644 assets/resources/game/skills/atked2/skeleton.png.meta delete mode 100644 assets/resources/game/skills/base_skill.plist delete mode 100644 assets/resources/game/skills/base_skill.plist.meta delete mode 100644 assets/resources/game/skills/base_skill.png delete mode 100644 assets/resources/game/skills/base_skill.png.meta create mode 100644 assets/resources/game/skills/breathspark02.png rename assets/resources/{gui/gui/health_bar-04.png.meta => game/skills/breathspark02.png.meta} (68%) create mode 100644 assets/resources/game/skills/dead.anim create mode 100644 assets/resources/game/skills/dead.anim.meta create mode 100644 assets/resources/game/skills/dead.prefab create mode 100644 assets/resources/game/skills/dead.prefab.meta delete mode 100644 assets/resources/gui/gui/health_bar-02.png delete mode 100644 assets/resources/gui/gui/health_bar-02.png.meta delete mode 100644 assets/resources/gui/gui/health_bar-04.png delete mode 100644 assets/resources/gui/gui/health_bar-05.png delete mode 100644 assets/resources/gui/gui/health_bar-05.png.meta delete mode 100644 assets/resources/gui/gui/health_bar-06.png delete mode 100644 assets/resources/gui/gui/health_bar-06.png.meta delete mode 100644 assets/resources/gui/gui/health_bar-07.png delete mode 100644 assets/resources/gui/gui/health_bar-07.png.meta create mode 100644 assets/script/game/common/config/CardSet.ts rename assets/script/game/{map/view/map/charactor/ICharactorClip.ts.meta => common/config/CardSet.ts.meta} (70%) delete mode 100644 assets/script/game/map/view/map/charactor.meta delete mode 100644 assets/script/game/map/view/map/charactor/Charactor.ts delete mode 100644 assets/script/game/map/view/map/charactor/ICharactorClip.ts delete mode 100644 assets/script/game/map/view/map/charactor/MovieClip.ts create mode 100644 assets/script/game/monster/HeroCardViewComp.ts rename assets/script/game/{map/view/map/charactor/MovieClip.ts.meta => monster/HeroCardViewComp.ts.meta} (52%) create mode 100644 assets/script/game/skills/atked.ts rename assets/script/game/{map/view/map/charactor/Charactor.ts.meta => skills/atked.ts.meta} (52%) create mode 100644 assets/script/game/skills/dead.ts create mode 100644 assets/script/game/skills/dead.ts.meta diff --git a/assets/resources/game/heros/cards/hero_card.prefab b/assets/resources/game/heros/cards/hero_card.prefab index 54aac85e..0b460896 100644 --- a/assets/resources/game/heros/cards/hero_card.prefab +++ b/assets/resources/game/heros/cards/hero_card.prefab @@ -29,10 +29,13 @@ "_components": [ { "__id__": 14 + }, + { + "__id__": 16 } ], "_prefab": { - "__id__": 16 + "__id__": 18 }, "_lpos": { "__type__": "cc.Vec3", @@ -222,8 +225,8 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 18.159, - "y": 5.803, + "x": 55, + "y": 55, "z": 0 }, "_lrot": { @@ -268,8 +271,8 @@ }, "_anchorPoint": { "__type__": "cc.Vec2", - "x": 0, - "y": 0 + "x": 0.5, + "y": 0.5 }, "_id": "" }, @@ -363,6 +366,24 @@ "__type__": "cc.CompPrefabInfo", "fileId": "10FOdA4JlCO7yvtiz10/Pn" }, + { + "__type__": "ad422rQFOdFR4cDG7TVsQ0B", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 17 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "5cziae6FNK4LiAaF6qi4ql" + }, { "__type__": "cc.PrefabInfo", "root": { diff --git a/assets/resources/game/monster/hero.prefab b/assets/resources/game/heros/hero.prefab similarity index 75% rename from assets/resources/game/monster/hero.prefab rename to assets/resources/game/heros/hero.prefab index a5cc08b1..f9b0528d 100644 --- a/assets/resources/game/monster/hero.prefab +++ b/assets/resources/game/heros/hero.prefab @@ -28,32 +28,32 @@ "__id__": 41 }, { - "__id__": 45 + "__id__": 55 } ], "_active": true, "_components": [ { - "__id__": 49 + "__id__": 63 }, { - "__id__": 51 + "__id__": 65 }, { - "__id__": 53 + "__id__": 67 }, { - "__id__": 55 + "__id__": 69 }, { - "__id__": 57 + "__id__": 71 }, { - "__id__": 59 + "__id__": 73 } ], "_prefab": { - "__id__": 61 + "__id__": 75 }, "_lpos": { "__type__": "cc.Vec3", @@ -168,21 +168,21 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": -4.0782725818644394e-7, - "y": 9.329999923706055, + "x": -7.450000762939453, + "y": 24, "z": 0 }, "_lrot": { "__type__": "cc.Quat", "x": 0, "y": 0, - "z": 2.185569414336889e-8, + "z": 2.1855693419110223e-8, "w": 0.9999999999999996 }, "_lscale": { "__type__": "cc.Vec3", - "x": 1, - "y": 1.0000000000000038, + "x": 1.0139000415802002, + "y": 1.013900041580204, "z": 1 }, "_mobility": 0, @@ -191,7 +191,7 @@ "__type__": "cc.Vec3", "x": 0, "y": 0, - "z": 0.000002504478065487657 + "z": 0.000002504477982493727 }, "_id": "" }, @@ -218,7 +218,7 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 0, + "x": 7.450001, "y": -25.5, "z": 0 }, @@ -625,7 +625,7 @@ }, { "__type__": "cc.Node", - "_name": "top", + "_name": "hp", "_objFlags": 0, "__editorExtras__": {}, "_parent": { @@ -638,6 +638,9 @@ ], "_active": true, "_components": [ + { + "__id__": 34 + }, { "__id__": 36 }, @@ -651,7 +654,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": 60, + "y": 112.378, "z": 0 }, "_lrot": { @@ -679,7 +682,7 @@ }, { "__type__": "cc.Node", - "_name": "lab_name", + "_name": "Bar", "_objFlags": 0, "__editorExtras__": {}, "_parent": { @@ -693,18 +696,569 @@ }, { "__id__": 31 - }, - { - "__id__": 33 } ], "_prefab": { - "__id__": 35 + "__id__": 33 }, "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": 14.6, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 28 + }, + "_enabled": true, + "__prefab": { + "__id__": 30 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 50, + "height": 5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "64oRBs3hJO3LA5VFslDpOO" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 28 + }, + "_enabled": true, + "__prefab": { + "__id__": 32 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "475189e3-a159-45bc-90f5-57864087d290@dfad9", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "1b7JSpvcxOhplKvSN0EmRv" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1eXXKteoBAvo0Hvio77rEU", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 27 + }, + "_enabled": true, + "__prefab": { + "__id__": 35 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 50, + "height": 5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "2bnXpjeBpLVb3bBNHoJ7Ml" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 27 + }, + "_enabled": true, + "__prefab": { + "__id__": 37 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "475189e3-a159-45bc-90f5-57864087d290@cf09c", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "81qai2QVVH/ZHainysEVfg" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 27 + }, + "_enabled": true, + "__prefab": { + "__id__": 39 + }, + "_barSprite": { + "__id__": 31 + }, + "_mode": 0, + "_totalLength": 50, + "_progress": 1, + "_reverse": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "679kvexftOP5THClBTLwgV" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "e0uLHlpWdNPYyGkO1b43Fw", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "power", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 42 + } + ], + "_active": true, + "_components": [ + { + "__id__": 48 + }, + { + "__id__": 50 + }, + { + "__id__": 52 + } + ], + "_prefab": { + "__id__": 54 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 107.378, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Bar", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 43 + }, + { + "__id__": 45 + } + ], + "_prefab": { + "__id__": 47 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 42 + }, + "_enabled": true, + "__prefab": { + "__id__": 44 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 50, + "height": 5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "813TIYW4hFE51fj5XnIM7U" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 42 + }, + "_enabled": true, + "__prefab": { + "__id__": 46 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "475189e3-a159-45bc-90f5-57864087d290@44c8a", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "a6uKKYR+hOwqOSPSq7AlvQ" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b3LJ0VG0VFrYRVjfPY427V", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 41 + }, + "_enabled": true, + "__prefab": { + "__id__": 49 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 50, + "height": 5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "09RqqG2gdIyLDPmkOnUl7P" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 41 + }, + "_enabled": true, + "__prefab": { + "__id__": 51 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "475189e3-a159-45bc-90f5-57864087d290@0e130", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "36zTet8jxGlIf/W9fQOS9R" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 41 + }, + "_enabled": true, + "__prefab": { + "__id__": 53 + }, + "_barSprite": { + "__id__": 45 + }, + "_mode": 0, + "_totalLength": 50, + "_progress": 1, + "_reverse": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "b9C5D8jvtF/JEjVlHBhBdr" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b5rEuqD9FEYYP4Im0qXER9", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "lab_name", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 56 + }, + { + "__id__": 58 + }, + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 62 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 84.999, "z": 0 }, "_lrot": { @@ -736,11 +1290,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 28 + "__id__": 55 }, "_enabled": true, "__prefab": { - "__id__": 30 + "__id__": 57 }, "_contentSize": { "__type__": "cc.Size", @@ -764,11 +1318,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 28 + "__id__": 55 }, "_enabled": true, "__prefab": { - "__id__": 32 + "__id__": 59 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -832,11 +1386,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 28 + "__id__": 55 }, "_enabled": true, "__prefab": { - "__id__": 34 + "__id__": 61 }, "_id": "" }, @@ -857,261 +1411,6 @@ "targetOverrides": null, "nestedPrefabInstanceRoots": null }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 27 - }, - "_enabled": true, - "__prefab": { - "__id__": 37 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 29.2 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "234p72JXlGdp68uJcFfl0q" - }, - { - "__type__": "cc.Layout", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 27 - }, - "_enabled": true, - "__prefab": { - "__id__": 39 - }, - "_resizeMode": 1, - "_layoutType": 2, - "_cellSize": { - "__type__": "cc.Size", - "width": 40, - "height": 40 - }, - "_startAxis": 0, - "_paddingLeft": 0, - "_paddingRight": 0, - "_paddingTop": 0, - "_paddingBottom": 0, - "_spacingX": 0, - "_spacingY": 0, - "_verticalDirection": 1, - "_horizontalDirection": 0, - "_constraint": 0, - "_constraintNum": 2, - "_affectedByScale": false, - "_isAlign": false, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "a5G3mGGpNLDI2/5kZx17N8" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d6Y+tOem9EaKNOQr6QHMns", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "hp", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 42 - } - ], - "_prefab": { - "__id__": 44 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 1, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 41 - }, - "_enabled": true, - "__prefab": { - "__id__": 43 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "31PQLKHbpCaItCKJa/V7Fg" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "37cfGWMPJD3Yt+XQailDiC", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "power", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 46 - } - ], - "_prefab": { - "__id__": 48 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 1, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 45 - }, - "_enabled": true, - "__prefab": { - "__id__": 47 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 100, - "height": 100 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "d33IX7nrNO4p5z9lyRW7ER" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "5aKyeTmgxLY7DvluMWkBDR", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, { "__type__": "cc.UITransform", "_name": "", @@ -1122,7 +1421,7 @@ }, "_enabled": false, "__prefab": { - "__id__": 50 + "__id__": 64 }, "_contentSize": { "__type__": "cc.Size", @@ -1150,7 +1449,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 52 + "__id__": 66 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1192,7 +1491,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 54 + "__id__": 68 }, "animator": { "__id__": 24 @@ -1213,7 +1512,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 56 + "__id__": 70 }, "_id": "" }, @@ -1231,23 +1530,23 @@ }, "_enabled": true, "__prefab": { - "__id__": 58 + "__id__": 72 }, "tag": 0, "_group": 2, - "_density": 1, + "_density": 0, "_sensor": false, "_friction": 1, - "_restitution": 0.2, + "_restitution": 0, "_offset": { "__type__": "cc.Vec2", - "x": 1.7, - "y": 30.5 + "x": -8.2, + "y": 27.9 }, "_size": { "__type__": "cc.Size", - "width": 70.4, - "height": 130 + "width": 58.4, + "height": 135.2 }, "_id": "" }, @@ -1265,7 +1564,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 60 + "__id__": 74 }, "enabledContactListener": true, "bullet": true, @@ -1273,7 +1572,7 @@ "_group": 2, "_type": 2, "_allowSleep": false, - "_gravityScale": 1, + "_gravityScale": 0, "_linearDamping": 0, "_angularDamping": 0, "_linearVelocity": { diff --git a/assets/resources/game/monster/hero.prefab.meta b/assets/resources/game/heros/hero.prefab.meta similarity index 100% rename from assets/resources/game/monster/hero.prefab.meta rename to assets/resources/game/heros/hero.prefab.meta diff --git a/assets/resources/game/map/map_rpg.prefab b/assets/resources/game/map/map_rpg.prefab index 5eee37d0..4bd6a924 100644 --- a/assets/resources/game/map/map_rpg.prefab +++ b/assets/resources/game/map/map_rpg.prefab @@ -28,17 +28,17 @@ "_active": true, "_components": [ { - "__id__": 97 + "__id__": 81 }, { - "__id__": 99 + "__id__": 83 }, { - "__id__": 101 + "__id__": 85 } ], "_prefab": { - "__id__": 103 + "__id__": 87 }, "_lpos": { "__type__": "cc.Vec3", @@ -197,17 +197,17 @@ "_active": true, "_components": [ { - "__id__": 90 + "__id__": 74 }, { - "__id__": 92 + "__id__": 76 }, { - "__id__": 94 + "__id__": 78 } ], "_prefab": { - "__id__": 96 + "__id__": 80 }, "_lpos": { "__type__": "cc.Vec3", @@ -251,23 +251,23 @@ "__id__": 8 }, { - "__id__": 63 + "__id__": 55 }, { - "__id__": 75 + "__id__": 59 }, { - "__id__": 81 + "__id__": 65 } ], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 71 } ], "_prefab": { - "__id__": 89 + "__id__": 73 }, "_lpos": { "__type__": "cc.Vec3", @@ -314,14 +314,14 @@ "_active": true, "_components": [ { - "__id__": 58 + "__id__": 50 }, { - "__id__": 60 + "__id__": 52 } ], "_prefab": { - "__id__": 62 + "__id__": 54 }, "_lpos": { "__type__": "cc.Vec3", @@ -369,25 +369,19 @@ }, { "__id__": 31 - }, - { - "__id__": 41 - }, - { - "__id__": 47 } ], "_active": true, "_components": [ { - "__id__": 53 + "__id__": 45 }, { - "__id__": 55 + "__id__": 47 } ], "_prefab": { - "__id__": 57 + "__id__": 49 }, "_lpos": { "__type__": "cc.Vec3", @@ -446,7 +440,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": 417.574, + "y": 523.833, "z": 0 }, "_lrot": { @@ -706,8 +700,8 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 0, - "y": 46.059, + "x": -16.518, + "y": 149.594, "z": 0 }, "_lrot": { @@ -841,15 +835,21 @@ }, { "__id__": 38 + }, + { + "__id__": 40 + }, + { + "__id__": 42 } ], "_prefab": { - "__id__": 40 + "__id__": 44 }, "_lpos": { "__type__": "cc.Vec3", "x": 0, - "y": -390.325, + "y": -285.585, "z": 0 }, "_lrot": { @@ -1016,6 +1016,74 @@ "__type__": "cc.CompPrefabInfo", "fileId": "fexeczFgpEObyOHYY30dp9" }, + { + "__type__": "cc.BoxCollider2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 31 + }, + "_enabled": true, + "__prefab": { + "__id__": 41 + }, + "tag": 0, + "_group": 1, + "_density": 1, + "_sensor": false, + "_friction": 0.2, + "_restitution": 0, + "_offset": { + "__type__": "cc.Vec2", + "x": 772.6, + "y": 294 + }, + "_size": { + "__type__": "cc.Size", + "width": 826.9, + "height": 1473.1 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "9fhhEkjyRAg7KBWa7BQ8y2" + }, + { + "__type__": "cc.BoxCollider2D", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 31 + }, + "_enabled": true, + "__prefab": { + "__id__": 43 + }, + "tag": 0, + "_group": 1, + "_density": 1, + "_sensor": false, + "_friction": 0.2, + "_restitution": 0, + "_offset": { + "__type__": "cc.Vec2", + "x": -681.5, + "y": 293.2 + }, + "_size": { + "__type__": "cc.Size", + "width": 659.8, + "height": 1471.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "dclJIfE5FF96M6AV1wbuKr" + }, { "__type__": "cc.PrefabInfo", "root": { @@ -1030,289 +1098,17 @@ "nestedPrefabInstanceRoots": null }, { - "__type__": "cc.Node", - "_name": "hero_start", + "__type__": "cc.UITransform", + "_name": "", "_objFlags": 0, "__editorExtras__": {}, - "_parent": { + "node": { "__id__": 9 }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 42 - }, - { - "__id__": 44 - } - ], - "_prefab": { + "_enabled": true, + "__prefab": { "__id__": 46 }, - "_lpos": { - "__type__": "cc.Vec3", - "x": -302.335, - "y": 10.956, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.6, - "y": 0.6, - "z": 1 - }, - "_mobility": 0, - "_layer": 1, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 41 - }, - "_enabled": true, - "__prefab": { - "__id__": 43 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 213.7100067138672, - "height": 50.540000915527344 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.49997658096179276, - "y": 0.49525129072476076 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "bfDLB5FjJGoZeRJ+6ZnDRw" - }, - { - "__type__": "sp.Skeleton", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 41 - }, - "_enabled": true, - "__prefab": { - "__id__": 45 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_skeletonData": { - "__uuid__": "790a7841-0c16-430a-aae3-54b392e8e255", - "__expectedType__": "sp.SkeletonData" - }, - "defaultSkin": "default", - "defaultAnimation": "move", - "_premultipliedAlpha": true, - "_timeScale": 1, - "_preCacheMode": 0, - "_cacheMode": 0, - "_sockets": [], - "_useTint": false, - "_debugMesh": false, - "_debugBones": false, - "_debugSlots": false, - "_enableBatch": false, - "loop": true, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "23lmIVbnxOQZ/D2L0zYMqM" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "deV2rRAxJBQr4J43Ifwca1", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "monster_start", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 9 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 48 - }, - { - "__id__": 50 - } - ], - "_prefab": { - "__id__": 52 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 299.971, - "y": 10.956, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.6, - "y": 0.6, - "z": 1 - }, - "_mobility": 0, - "_layer": 1, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 47 - }, - "_enabled": true, - "__prefab": { - "__id__": 49 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 213.7100067138672, - "height": 50.540000915527344 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.49997658096179276, - "y": 0.49525129072476076 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "a1BEvYEjVJKJXkGH1HdpGC" - }, - { - "__type__": "sp.Skeleton", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 47 - }, - "_enabled": true, - "__prefab": { - "__id__": 51 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_skeletonData": { - "__uuid__": "790a7841-0c16-430a-aae3-54b392e8e255", - "__expectedType__": "sp.SkeletonData" - }, - "defaultSkin": "default", - "defaultAnimation": "move", - "_premultipliedAlpha": true, - "_timeScale": 1, - "_preCacheMode": 0, - "_cacheMode": 0, - "_sockets": [], - "_useTint": false, - "_debugMesh": false, - "_debugBones": false, - "_debugSlots": false, - "_enableBatch": false, - "loop": true, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "a3HdE6I0NFBZJ/fpTSZMBi" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "5bWjNWeZBEUZ+bAtAkRvmm", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 9 - }, - "_enabled": true, - "__prefab": { - "__id__": 54 - }, "_contentSize": { "__type__": "cc.Size", "width": 0, @@ -1339,7 +1135,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 56 + "__id__": 48 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1397,7 +1193,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 59 + "__id__": 51 }, "_contentSize": { "__type__": "cc.Size", @@ -1425,10 +1221,10 @@ }, "_enabled": true, "__prefab": { - "__id__": 61 + "__id__": 53 }, "bgImg": { - "__id__": 55 + "__id__": 47 }, "_id": "" }, @@ -1457,77 +1253,20 @@ "_parent": { "__id__": 7 }, - "_children": [ - { - "__id__": 64 - } - ], - "_active": true, - "_components": [ - { - "__id__": 72 - } - ], - "_prefab": { - "__id__": 74 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 1, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.Node", - "_name": "data", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 63 - }, "_children": [], "_active": true, "_components": [ { - "__id__": 65 - }, - { - "__id__": 67 - }, - { - "__id__": 69 + "__id__": 56 } ], "_prefab": { - "__id__": 71 + "__id__": 58 }, "_lpos": { "__type__": "cc.Vec3", - "x": -191.8, - "y": 568.433, + "x": 0, + "y": 0, "z": 0 }, "_lrot": { @@ -1559,142 +1298,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 64 + "__id__": 55 }, "_enabled": true, "__prefab": { - "__id__": 66 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 84.51171875, - "height": 50.4 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "99+7M3vtBKVKL1+HWxsqgs" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 64 - }, - "_enabled": true, - "__prefab": { - "__id__": 68 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_string": "label", - "_horizontalAlign": 1, - "_verticalAlign": 1, - "_actualFontSize": 40, - "_fontSize": 40, - "_fontFamily": "Arial", - "_lineHeight": 40, - "_overflow": 0, - "_enableWrapText": true, - "_font": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_isItalic": false, - "_isBold": false, - "_isUnderline": false, - "_underlineHeight": 2, - "_cacheMode": 0, - "_enableOutline": false, - "_outlineColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_outlineWidth": 2, - "_enableShadow": false, - "_shadowColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_shadowOffset": { - "__type__": "cc.Vec2", - "x": 2, - "y": 2 - }, - "_shadowBlur": 2, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "0a/R7r3dhB140c/1czByKm" - }, - { - "__type__": "545c05XsG9GDJispEGWKvYv", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 64 - }, - "_enabled": true, - "__prefab": { - "__id__": 70 - }, - "templateMode": false, - "watchPath": "data.name", - "labelType": "cc.Label", - "watchPathArr": [], - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "b5tQWW68RLQ5wXfJLcSi2h" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "c506SM3uVMs4Dt+gEWBotY", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 63 - }, - "_enabled": true, - "__prefab": { - "__id__": 73 + "__id__": 57 }, "_contentSize": { "__type__": "cc.Size", @@ -1737,14 +1345,14 @@ "_active": true, "_components": [ { - "__id__": 76 + "__id__": 60 }, { - "__id__": 78 + "__id__": 62 } ], "_prefab": { - "__id__": 80 + "__id__": 64 }, "_lpos": { "__type__": "cc.Vec3", @@ -1781,11 +1389,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 75 + "__id__": 59 }, "_enabled": true, "__prefab": { - "__id__": 77 + "__id__": 61 }, "_contentSize": { "__type__": "cc.Size", @@ -1809,11 +1417,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 75 + "__id__": 59 }, "_enabled": true, "__prefab": { - "__id__": 79 + "__id__": 63 }, "_id": "" }, @@ -1846,14 +1454,14 @@ "_active": true, "_components": [ { - "__id__": 82 + "__id__": 66 }, { - "__id__": 84 + "__id__": 68 } ], "_prefab": { - "__id__": 86 + "__id__": 70 }, "_lpos": { "__type__": "cc.Vec3", @@ -1890,11 +1498,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 81 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 83 + "__id__": 67 }, "_contentSize": { "__type__": "cc.Size", @@ -1918,11 +1526,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 81 + "__id__": 65 }, "_enabled": true, "__prefab": { - "__id__": 85 + "__id__": 69 }, "light": { "__uuid__": "683fa094-5032-4f8d-a8c6-63a962c9bdd5", @@ -1957,7 +1565,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 88 + "__id__": 72 }, "_contentSize": { "__type__": "cc.Size", @@ -1998,7 +1606,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 91 + "__id__": 75 }, "_contentSize": { "__type__": "cc.Size", @@ -2026,7 +1634,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 93 + "__id__": 77 }, "camera": { "__id__": 3 @@ -2035,13 +1643,13 @@ "__id__": 7 }, "mapLayer": { - "__id__": 60 + "__id__": 52 }, "floorLayer": { - "__id__": 63 + "__id__": 55 }, "entityLayer": { - "__id__": 78 + "__id__": 62 }, "isFollowPlayer": true, "_id": "" @@ -2060,7 +1668,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 95 + "__id__": 79 }, "_id": "" }, @@ -2091,7 +1699,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 98 + "__id__": 82 }, "_contentSize": { "__type__": "cc.Size", @@ -2119,7 +1727,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 100 + "__id__": 84 }, "_cameraComponent": { "__id__": 3 @@ -2141,7 +1749,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 102 + "__id__": 86 }, "_alignFlags": 45, "_target": null, diff --git a/assets/resources/game/skills/atked.meta b/assets/resources/game/skills/atked.meta index 57a60bbb..974c68eb 100644 --- a/assets/resources/game/skills/atked.meta +++ b/assets/resources/game/skills/atked.meta @@ -2,7 +2,7 @@ "ver": "1.2.0", "importer": "directory", "imported": true, - "uuid": "8c0a92f5-59bf-4269-80b0-1864542c72f5", + "uuid": "03a08c3e-98fa-47c1-b8c4-83253a1134c0", "files": [], "subMetas": {}, "userData": {} diff --git a/assets/resources/game/skills/atked.prefab b/assets/resources/game/skills/atked.prefab index 130731fa..e8efebe5 100644 --- a/assets/resources/game/skills/atked.prefab +++ b/assets/resources/game/skills/atked.prefab @@ -25,10 +25,13 @@ }, { "__id__": 4 + }, + { + "__id__": 6 } ], "_prefab": { - "__id__": 6 + "__id__": 8 }, "_lpos": { "__type__": "cc.Vec3", @@ -73,13 +76,13 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 33.599998474121094, - "height": 56.099998474121094 + "width": 76, + "height": 76 }, "_anchorPoint": { "__type__": "cc.Vec2", "x": 0.5, - "y": 0.4973262099356479 + "y": 0.5 }, "_id": "" }, @@ -132,6 +135,24 @@ "__type__": "cc.CompPrefabInfo", "fileId": "38BwtUqNBFS5wrOvMgZuHn" }, + { + "__type__": "65d62Zvu6ZLmINDKmdkLsfr", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 7 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "ccrrq3MYxI361Grntyyq6O" + }, { "__type__": "cc.PrefabInfo", "root": { @@ -141,6 +162,7 @@ "__id__": 0 }, "fileId": "cfqCWnxbFLNoQMedQXsav3", + "instance": null, "targetOverrides": null } ] \ No newline at end of file diff --git a/assets/resources/game/skills/atked/skeleton.atlas b/assets/resources/game/skills/atked/skeleton.atlas index c343d1c2..d5edaf7f 100644 --- a/assets/resources/game/skills/atked/skeleton.atlas +++ b/assets/resources/game/skills/atked/skeleton.atlas @@ -1,20 +1,13 @@ skeleton.png -size: 270,76 +size: 80,80 format: RGBA8888 filter: Linear,Linear repeat: none -shock - rotate: true - xy: 191, 2 - size: 72, 77 - orig: 72, 83 - offset: 0, 3 - index: -1 -shock2 - rotate: true - xy: 2, 23 - size: 51, 187 - orig: 112, 187 - offset: 31, 0 +123 + rotate: false + xy: 2, 2 + size: 76, 76 + orig: 76, 76 + offset: 0, 0 index: -1 diff --git a/assets/resources/game/skills/atked/skeleton.atlas.meta b/assets/resources/game/skills/atked/skeleton.atlas.meta index 595093e8..97c1f1e2 100644 --- a/assets/resources/game/skills/atked/skeleton.atlas.meta +++ b/assets/resources/game/skills/atked/skeleton.atlas.meta @@ -2,7 +2,7 @@ "ver": "1.0.1", "importer": "*", "imported": true, - "uuid": "868f74aa-e494-4ff3-a215-68e6279fce6c", + "uuid": "91931c12-0fa3-4f90-bbb2-7e77bcefd516", "files": [ ".atlas", ".json" diff --git a/assets/resources/game/skills/atked/skeleton.json b/assets/resources/game/skills/atked/skeleton.json index 973fd355..5a15f3dd 100644 --- a/assets/resources/game/skills/atked/skeleton.json +++ b/assets/resources/game/skills/atked/skeleton.json @@ -1,27 +1,26 @@ { "skeleton": { - "hash": "Vb/ssedFfDJsjUnry/6JQl8TvS0", + "hash": "16EHKkySIjdHjHmLr6ZnyajUKu0", "spine": "3.8.99", - "x": -4.26, - "y": -12.15, - "width": 8.52, - "height": 24.9, - "images": "D:/Game/方块英雄/skills/ATCED", + "x": -8.2, + "y": -11.4, + "width": 16.4, + "height": 22.8, + "images": "", "audio": "" }, "bones": [ - { "name": "root", "scaleX": 0.1585, "scaleY": 0.3 } + { "name": "root", "scaleX": 0.2158, "scaleY": 0.3 } ], "slots": [ - { "name": "shock", "bone": "root", "attachment": "shock" } + { "name": "shock", "bone": "root", "attachment": "123" } ], "skins": [ { "name": "default", "attachments": { "shock": { - "shock": { "y": 1, "scaleX": 0.7465, "width": 72, "height": 83 }, - "shock2": { "y": 0.5, "width": 112, "height": 187 } + "123": { "width": 76, "height": 76 } } } } diff --git a/assets/resources/game/skills/atked/skeleton.json.meta b/assets/resources/game/skills/atked/skeleton.json.meta index b16d3d8d..11702f9d 100644 --- a/assets/resources/game/skills/atked/skeleton.json.meta +++ b/assets/resources/game/skills/atked/skeleton.json.meta @@ -2,7 +2,7 @@ "ver": "1.2.6", "importer": "spine-data", "imported": true, - "uuid": "6a4fc12c-e408-49f9-9b85-cdffa4b7190f", + "uuid": "2309ba59-9c86-4995-a595-abc5e63a8833", "files": [ ".json" ], diff --git a/assets/resources/game/skills/atked/skeleton.png b/assets/resources/game/skills/atked/skeleton.png index 782189204a0c2054748b5fb6ca4b4ad5516a9fe2..eeffab3599fefe202905786ddda9621289b54aab 100644 GIT binary patch literal 1267 zcmVJ)hNW=FFLM=6UYSnRDmf9Xo;`sBmh5mj?rRu)xcM0qhZ<7I5wL zK@aD|p9NfdebB>Wkp_@!uMaxdFTRO1fLv4NazTX)A`M=GGM5V~JQY5Gl(}3`;IQ~5 zd;lq<&gBE+itxcpQ0MZ2@m%=8C8%@xEy+!BR(N?U$Ak}>gN(Op1z+&V%V&cQapr|M zFLnx-Sq7Z&0duBu6q~UfAJ99;AEJ}gF}xNR#cttpV|XL}4OJOryxkbE5nHi2>BJY8 zn;m|=+%b47E{lD_<@-1(Twe`jy?r0pgl*X9`tZf&XNOxL{}ppSifdxb?%}R*JvET^ z_B9R&Y{4ei1Nbo26f_!c1ve zO@sNQbW1qwW$%e2!gWAel$?hPyc}wiK7G(vzL&0n?XB~6Gt4V)SdE{80XZ&m9gl>| z!kGnL4z$U2pcCEn;j%TbJ=d`kn4D|#OO4;+i8vu>U%E}-3+5)^+UsdUTXdicoi5V_ zHZQZ-%>t9O8#t7g!pq=}Ncy?0ygJ9tQ1zdzR7wl{IimNuD!kmY#kFJYznM+ zZYcZ^rR+);q@hM2-i=U%ax!H`l8R$ z4~LC?Vb#hYd~kySho~o?cU$z`?ni~|rp)DX(24GpGo(+K0c>>LYXdP@DU9G>ktahB zitFODaM@=f*O^0|%cBEb=uC3-RrVlZD?Bx zMd&NZ=l>9E73JSQHKn&wDEeNkJ1!@O&-9nEd;ji0C20h z?9|YQ_Y2tMvTI8%ZezYG-Evcb?$W#pd0e^n;7Dzkz`W)1Q-N;p53ps3fW;2oTYqT4Hf~{(+WDhpBmVT&C6uACxItp zJlq-b45I`qsq1V7o!-w7@Bv@uc-prCf>R!BcRjc5gFu*At}9eo7IdP!6l@O#-|%s= z6A)x9IMlju)KAFuo`2~Nz>;kNnc#GG_Jcm8iadom~S z;hjdv=asTIl+Au(;C~@LKGsNl{;m;nb@^VF>$S??Z3W^JppC>wXd8*oAWuMih`W*a d6nqf$@fSi)j4qR$k2e4S002ovPDHLkV1kGbUY!5{ literal 7585 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 O0000 - - - - frames - - 1.png - - aliases - - spriteOffset - {0,0} - spriteSize - {124,72} - spriteSourceSize - {124,72} - textureRect - {{319,1},{124,72}} - textureRotated - - - 2.png - - aliases - - spriteOffset - {0,0} - spriteSize - {148,73} - spriteSourceSize - {148,73} - textureRect - {{169,1},{148,73}} - textureRotated - - - heroic-5.png - - aliases - - spriteOffset - {0,0} - spriteSize - {85,166} - spriteSourceSize - {85,166} - textureRect - {{1,1},{85,166}} - textureRotated - - - - metadata - - format - 3 - pixelFormat - RGBA8888 - premultiplyAlpha - - realTextureFileName - base_skill.png - size - {444,87} - smartupdate - $TexturePacker:SmartUpdate:7b8e635bb7872aa3f50a6f724a2d5dee:c7d01d3ba6995aa7586e4efbae24d79c:a7df538edd03f24f47645c95a85bbb00$ - textureFileName - base_skill.png - - - diff --git a/assets/resources/game/skills/base_skill.plist.meta b/assets/resources/game/skills/base_skill.plist.meta deleted file mode 100644 index a3e0c724..00000000 --- a/assets/resources/game/skills/base_skill.plist.meta +++ /dev/null @@ -1,155 +0,0 @@ -{ - "ver": "1.0.8", - "importer": "sprite-atlas", - "imported": true, - "uuid": "273b7fca-6127-4f97-a9f3-9db27cca0220", - "files": [ - ".json" - ], - "subMetas": { - "c30fb": { - "importer": "sprite-frame", - "uuid": "273b7fca-6127-4f97-a9f3-9db27cca0220@c30fb", - "displayName": "", - "id": "c30fb", - "name": "1", - "userData": { - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 319, - "trimY": 1, - "width": 124, - "height": 72, - "rawWidth": 124, - "rawHeight": 72, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "packable": true, - "pixelsToUnit": 100, - "pivotX": 0.5, - "pivotY": 0.5, - "meshType": 0, - "vertices": { - "rawPosition": [], - "indexes": [], - "uv": [], - "nuv": [], - "minPos": [], - "maxPos": [] - }, - "isUuid": true, - "imageUuidOrDatabaseUri": "703b2e7c-a885-4c4d-bcfc-67b558e7ab62@6c48a", - "atlasUuid": "273b7fca-6127-4f97-a9f3-9db27cca0220" - }, - "ver": "1.0.12", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - }, - "c86cc": { - "importer": "sprite-frame", - "uuid": "273b7fca-6127-4f97-a9f3-9db27cca0220@c86cc", - "displayName": "", - "id": "c86cc", - "name": "2", - "userData": { - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": 0, - "offsetY": 0, - "trimX": 169, - "trimY": 1, - "width": 148, - "height": 73, - "rawWidth": 148, - "rawHeight": 73, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "packable": true, - "pixelsToUnit": 100, - "pivotX": 0.5, - "pivotY": 0.5, - "meshType": 0, - "vertices": { - "rawPosition": [], - "indexes": [], - "uv": [], - "nuv": [], - "minPos": [], - "maxPos": [] - }, - "isUuid": true, - "imageUuidOrDatabaseUri": "703b2e7c-a885-4c4d-bcfc-67b558e7ab62@6c48a", - "atlasUuid": "273b7fca-6127-4f97-a9f3-9db27cca0220" - }, - "ver": "1.0.12", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - }, - "4ca53": { - "importer": "sprite-frame", - "uuid": "273b7fca-6127-4f97-a9f3-9db27cca0220@4ca53", - "displayName": "", - "id": "4ca53", - "name": "heroic-5", - "userData": { - "trimType": "auto", - "trimThreshold": 1, - "rotated": true, - "offsetX": 0, - "offsetY": 0, - "trimX": 1, - "trimY": 1, - "width": 85, - "height": 166, - "rawWidth": 85, - "rawHeight": 166, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "packable": true, - "pixelsToUnit": 100, - "pivotX": 0.5, - "pivotY": 0.5, - "meshType": 0, - "vertices": { - "rawPosition": [], - "indexes": [], - "uv": [], - "nuv": [], - "minPos": [], - "maxPos": [] - }, - "isUuid": true, - "imageUuidOrDatabaseUri": "703b2e7c-a885-4c4d-bcfc-67b558e7ab62@6c48a", - "atlasUuid": "273b7fca-6127-4f97-a9f3-9db27cca0220" - }, - "ver": "1.0.12", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - } - }, - "userData": { - "atlasTextureName": "base_skill.png", - "format": 3, - "uuid": "273b7fca-6127-4f97-a9f3-9db27cca0220", - "textureUuid": "703b2e7c-a885-4c4d-bcfc-67b558e7ab62@6c48a" - } -} diff --git a/assets/resources/game/skills/base_skill.png b/assets/resources/game/skills/base_skill.png deleted file mode 100644 index 5a50bfaf0d83e507d1fae58d464f6a09263b6b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21755 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%0DAp&g}$|S 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

SJDmu`(EMbd` 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 n&w54XyJLz{cm22q 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 AlmGw# diff --git a/assets/resources/gui/gui/health_bar-02.png.meta b/assets/resources/gui/gui/health_bar-02.png.meta deleted file mode 100644 index 434cc5fd..00000000 --- a/assets/resources/gui/gui/health_bar-02.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -{ - "ver": "1.0.26", - "importer": "image", - "imported": true, - "uuid": "5425790a-354d-463c-b2f1-b5b0bf6a1373", - "files": [ - ".json", - ".png" - ], - "subMetas": { - "6c48a": { - "importer": "texture", - "uuid": "5425790a-354d-463c-b2f1-b5b0bf6a1373@6c48a", - "displayName": "health_bar-02", - "id": "6c48a", - "name": "texture", - "userData": { - "wrapModeS": "clamp-to-edge", - "wrapModeT": "clamp-to-edge", - "minfilter": "linear", - "magfilter": "linear", - "mipfilter": "none", - "anisotropy": 0, - "isUuid": true, - "imageUuidOrDatabaseUri": "5425790a-354d-463c-b2f1-b5b0bf6a1373", - "visible": false - }, - "ver": "1.0.22", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - }, - "f9941": { - "importer": "sprite-frame", - "uuid": "5425790a-354d-463c-b2f1-b5b0bf6a1373@f9941", - "displayName": "health_bar-02", - "id": "f9941", - "name": "spriteFrame", - "userData": { - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -7.5, - "offsetY": -10, - "trimX": 98, - "trimY": 119, - "width": 710, - "height": 81, - "rawWidth": 921, - "rawHeight": 299, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "packable": true, - "pixelsToUnit": 100, - "pivotX": 0.5, - "pivotY": 0.5, - "meshType": 0, - "vertices": { - "rawPosition": [ - -355, - -40.5, - 0, - 355, - -40.5, - 0, - -355, - 40.5, - 0, - 355, - 40.5, - 0 - ], - "indexes": [ - 0, - 1, - 2, - 2, - 1, - 3 - ], - "uv": [ - 98, - 180, - 808, - 180, - 98, - 99, - 808, - 99 - ], - "nuv": [ - 0.10640608034744843, - 0.3311036789297659, - 0.8773072747014115, - 0.3311036789297659, - 0.10640608034744843, - 0.6020066889632107, - 0.8773072747014115, - 0.6020066889632107 - ], - "minPos": [ - -355, - -40.5, - 0 - ], - "maxPos": [ - 355, - 40.5, - 0 - ] - }, - "isUuid": true, - "imageUuidOrDatabaseUri": "5425790a-354d-463c-b2f1-b5b0bf6a1373@6c48a", - "atlasUuid": "" - }, - "ver": "1.0.12", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - } - }, - "userData": { - "hasAlpha": true, - "type": "sprite-frame", - "fixAlphaTransparencyArtifacts": false, - "redirect": "5425790a-354d-463c-b2f1-b5b0bf6a1373@f9941" - } -} diff --git a/assets/resources/gui/gui/health_bar-04.png b/assets/resources/gui/gui/health_bar-04.png deleted file mode 100644 index 88e7a3ca8cf0e3e05ef67399a1d0ea4c5453ba93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226803 zcmeI)Z)ja-9S88|Bx%;Qjmg%Cpw33;n6ltpRm6dsX~lNfEvpr(;7pk>#24Bj16|Ps z2f`Fw@r}M)`oceN>{4MMOe6!}NZCkdAWYV|G6ox~xY|X{-|O>~o08mS_nb7j%elFq z2Ttz!^PF>j&*$XDmxpujql5Q+v1`Y>cZ3kS4(#7|D1^4Z#Pz}Lo$>GcKK(!?eq4WS z|5v{k!pf9MAX_T6>(`&p>OPFW@WEzkz~`+H)y!Rj&)KfB|i5gC*BA)b(w>r^&0t5&UAV7cs z0Rl}Ta52`ILh;yY^a06K|xGF9+fnhWq0BL|nS#QmFM@*BKuD)ScnhuiO{Hu3d%B z(TM;70t5&UAV7e?MheV7|M&3cKRg+JGC8@{%bt#b`0`BgQXn3US1A085RsWSBFy|zWnY)-buf?`+%9@JS4{n5FkK+009C7 zHeKMzgWm~zZ|Esn$6$J8qLSBpZ&z3N`A7Qmx;ajO009C72oNAZpcDfCoSqI}o_MZE zEvIXLhj`VKj^F(LRrlLTfB*pk1PBlyK%k5QyLavkgT1{)N*l-x!~=14*>!M2oNAZfB=C~3GCXwJ>0V6`rMjw1M#i9 z1>#&q9S9I0K!5-N0t8AaaPY?bEL%4ar$oK2y}gu!QxpLL1PBlyK!5;&Jb{mOcja{n zbpvr%dq?gCbRa;0009C72oNC9%mQ@-aWfB0?F0xAAV7cs0RjZx)06*u!~(JZ69NPX z5FkK+0D+bk5Qtm)@f$n=0t5&UAV7eCK)gx+1KG&p@Fv~bZ3z${K!5-N0t9LWq~cl; z+XM&@AV7cs0Rk;0AP~3I<2G0V1PBlyK!5;&S^U>|0t5&UAV7dXO9=?XE%mq! zmH+_)1PBlyK%iDYAg&d$O@IIa0t5&UAkb0*0&z<{Zi6L2fB*pk1PBnQ6%dGPMQjrw zK!5-N0t5)Olz>3oQjgnU2@oJafB*pk1Zo8Y;#v{g1PBlyK!5-N0xcyV5VzFhHdq1# z2oNAZfB=D70fD$y#5Mr}1PBl)zraXkxco(`kU&!jNX1R{xD-o(009C72oNB!(E*5#z0t5&UAV7csfutCs))0t5&UXt;n> z+;CzyAV7cs0RjXF5Gb>NKwRdhqc#Er2oNAZfB=Dp3kbvwCw2n@1PBlyK!5;&G7AXA zWqvwpBS3%v0RjXF5NNo7K-_R*Hy}WO009C72oNZvc|3&426oZ}@yiXV_M+qhkaJ5FkK+009C7Hd)}pVkJDaP-u2IRXUae@mO5y z2IAE7mC9l`vp5$%v#ld^rX3mq0t5&UAV7csfszSah!eSgoG<(xxbx$alVff1&uARS z`66SPT386DW@p2t0xu^Qxt=}*2(*mA;6qRRv}FcspacjIAh3x7OM!JJ|I2hsRgR{W zr5A}u(ngW?dYp&;ZA`{zV?x#l5FkK+009C72yC`Mnz4OyZZ7<3Za%Cb3}1|OpGdW5 zmFkr5K!5*4+`c{SEZW|YW#Pl^?coFMZJ{@=YXk@oAV7cs0RjZxE`b*p7sHDSiy_Sn zUqd@ueO+QjApU5)(0E+Bui=8>x|oN1v!w~=Yq^4R2oNAZfB*pk1PJ5{%!W!xZ!N5& zosMC6aOwOjGsI~}oFyKLACISXjQ{}x1PBlyK!Cs&6gV5lG!O&v8%twbF{N9bHa@y^ z&?f-`1PBlyK!5;&EhKPN7*1nb5s1?cp*SgM1PBlyK!5-N0$WUA)i9jKcvT=yJFB7i zj<{OrH`&rT8UX?X2oNAZfB=D#3Y?5}t$0mhd7UfXAzpqUt;ctYd*a8jxD2OljQ{}x z1PBlyK!89K38cy0p*Yz)Ua#i5fq3b}7>xVk`cQS*6F)Tq1PBlyK!5-N0%a9=Iu#9*EmZOPWDm({C5Y{u%)S1PBlyK!5;&jS{#RFEkOCm*O&>mKcQ7 gdf}FZP^sMg;Qf0~9Y6j^I_tm}?%8+hb3;G=Kd_jJF8}}l diff --git a/assets/resources/gui/gui/health_bar-05.png b/assets/resources/gui/gui/health_bar-05.png deleted file mode 100644 index 09b58bf0ed92823ff960fce18b7c5216bc8fc525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227445 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 diff --git a/assets/resources/gui/gui/health_bar-07.png.meta b/assets/resources/gui/gui/health_bar-07.png.meta deleted file mode 100644 index 1fe964a3..00000000 --- a/assets/resources/gui/gui/health_bar-07.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -{ - "ver": "1.0.26", - "importer": "image", - "imported": true, - "uuid": "6914c629-5103-4b3d-b0a7-64e27b3be1f6", - "files": [ - ".json", - ".png" - ], - "subMetas": { - "6c48a": { - "importer": "texture", - "uuid": "6914c629-5103-4b3d-b0a7-64e27b3be1f6@6c48a", - "displayName": "health_bar-07", - "id": "6c48a", - "name": "texture", - "userData": { - "wrapModeS": "clamp-to-edge", - "wrapModeT": "clamp-to-edge", - "minfilter": "linear", - "magfilter": "linear", - "mipfilter": "none", - "anisotropy": 0, - "isUuid": true, - "imageUuidOrDatabaseUri": "6914c629-5103-4b3d-b0a7-64e27b3be1f6", - "visible": false - }, - "ver": "1.0.22", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - }, - "f9941": { - "importer": "sprite-frame", - "uuid": "6914c629-5103-4b3d-b0a7-64e27b3be1f6@f9941", - "displayName": "health_bar-07", - "id": "f9941", - "name": "spriteFrame", - "userData": { - "trimType": "auto", - "trimThreshold": 1, - "rotated": false, - "offsetX": -1.5, - "offsetY": 0.5, - "trimX": 6, - "trimY": 6, - "width": 694, - "height": 67, - "rawWidth": 709, - "rawHeight": 80, - "borderTop": 0, - "borderBottom": 0, - "borderLeft": 0, - "borderRight": 0, - "packable": true, - "pixelsToUnit": 100, - "pivotX": 0.5, - "pivotY": 0.5, - "meshType": 0, - "vertices": { - "rawPosition": [ - -347, - -33.5, - 0, - 347, - -33.5, - 0, - -347, - 33.5, - 0, - 347, - 33.5, - 0 - ], - "indexes": [ - 0, - 1, - 2, - 2, - 1, - 3 - ], - "uv": [ - 6, - 74, - 700, - 74, - 6, - 7, - 700, - 7 - ], - "nuv": [ - 0.00846262341325811, - 0.0875, - 0.9873060648801129, - 0.0875, - 0.00846262341325811, - 0.925, - 0.9873060648801129, - 0.925 - ], - "minPos": [ - -347, - -33.5, - 0 - ], - "maxPos": [ - 347, - 33.5, - 0 - ] - }, - "isUuid": true, - "imageUuidOrDatabaseUri": "6914c629-5103-4b3d-b0a7-64e27b3be1f6@6c48a", - "atlasUuid": "" - }, - "ver": "1.0.12", - "imported": true, - "files": [ - ".json" - ], - "subMetas": {} - } - }, - "userData": { - "hasAlpha": true, - "type": "sprite-frame", - "fixAlphaTransparencyArtifacts": false, - "redirect": "6914c629-5103-4b3d-b0a7-64e27b3be1f6@f9941" - } -} diff --git a/assets/resources/gui/prefab/role_controller.prefab b/assets/resources/gui/prefab/role_controller.prefab index f334152f..94ef8244 100644 --- a/assets/resources/gui/prefab/role_controller.prefab +++ b/assets/resources/gui/prefab/role_controller.prefab @@ -124,7 +124,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": -355, - "y": -190, + "y": -25, "z": 0 }, "_lrot": { @@ -1065,7 +1065,7 @@ "_left": 5, "_right": 0, "_top": 774.7149999999999, - "_bottom": 450, + "_bottom": 615, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -1140,7 +1140,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": -120, - "y": -190, + "y": -25, "z": 0 }, "_lrot": { @@ -2448,7 +2448,7 @@ "_left": 240, "_right": 0, "_top": 779.934, - "_bottom": 450, + "_bottom": 615, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, @@ -2517,7 +2517,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": 115, - "y": -190, + "y": -25, "z": 0 }, "_lrot": { @@ -3458,7 +3458,7 @@ "_left": 475, "_right": 68.59100000000001, "_top": 0, - "_bottom": 450, + "_bottom": 615, "_horizontalCenter": 0, "_verticalCenter": 0, "_isAbsLeft": true, diff --git a/assets/script/Main.ts b/assets/script/Main.ts index 5df04c31..12aed978 100644 --- a/assets/script/Main.ts +++ b/assets/script/Main.ts @@ -25,18 +25,17 @@ export class Main extends Root { protected async run() { smc.initialize = ecs.getEntity(Initialize); smc.monsters = [ - {prefab_path:'lang',name:'迅狼',speed:40}, - // {prefab_path:'hero',name:'火猴',speed:40}, - // {prefab_path:'lang',name:'m3',speed:40}, - // {prefab_path:'lang',name:'m4',speed:40}, - // {prefab_path:'lang',name:'m3',speed:40}, - // {prefab_path:'lang',name:'m4',speed:40}, + {prefab_path:'lang',name:'迅狼',speed:100}, + {prefab_path:'hero',name:'火猴',speed:45}, + {prefab_path:'lang',name:'m3',speed:40}, + {prefab_path:'lang',name:'m4',speed:40}, + {prefab_path:'lang',name:'m3',speed:40}, + {prefab_path:'lang',name:'m4',speed:40}, ] smc.heros = [ - // {prefab_path:'lang',name:'迅狼',speed:110}, - {prefab_path:'liubang',name:'刘邦',speed:40}, - // {prefab_path:'mulan',name:'花木兰',speed:40}, - // {prefab_path:'yinzheng',name:'嬴政',speed:40}, + {prefab_path:'lang',name:'迅狼',speed:110}, + {prefab_path:'liubang',name:'刘邦',speed:110}, + {prefab_path:'yinzheng',name:'嬴政',speed:110}, ] console.log("Game start"); smc.vmAdd() diff --git a/assets/script/game/common/config/BoxSet.ts b/assets/script/game/common/config/BoxSet.ts index dfc94e53..35d6923d 100644 --- a/assets/script/game/common/config/BoxSet.ts +++ b/assets/script/game/common/config/BoxSet.ts @@ -19,8 +19,8 @@ export enum BoxSet { //地图边界 LETF_END = -400, RIGHT_END = 400, - HERO_START = -309, - MONSTER_START = 309, + HERO_START = -500, + MONSTER_START = 500, //游戏地平线 GAME_LINE = 30, } \ No newline at end of file diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts new file mode 100644 index 00000000..f41c19f6 --- /dev/null +++ b/assets/script/game/common/config/CardSet.ts @@ -0,0 +1,20 @@ +/* + * @Author: dgflash + * @Date: 2021-11-23 15:28:39 + * @LastEditors: dgflash + * @LastEditTime: 2022-01-26 16:42:00 + */ + +export const CardSet = { + 1001:{ + uuid:1001, + name:'嬴政', + level:1, + prefab_path:'yinzheng', + hp:100, + power:100, + speed:100, + skill:{ } + }, + +} \ No newline at end of file diff --git a/assets/script/game/map/view/map/charactor/ICharactorClip.ts.meta b/assets/script/game/common/config/CardSet.ts.meta similarity index 70% rename from assets/script/game/map/view/map/charactor/ICharactorClip.ts.meta rename to assets/script/game/common/config/CardSet.ts.meta index 770ec94a..93b4d5b1 100644 --- a/assets/script/game/map/view/map/charactor/ICharactorClip.ts.meta +++ b/assets/script/game/common/config/CardSet.ts.meta @@ -2,7 +2,7 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "977105e0-d01b-402a-b649-080e33733218", + "uuid": "ffda71d7-624d-40de-8c09-712edd44bfdc", "files": [], "subMetas": {}, "userData": {} diff --git a/assets/script/game/heros/HeroSpine.ts b/assets/script/game/heros/HeroSpine.ts index d42e84a4..dd3a0459 100644 --- a/assets/script/game/heros/HeroSpine.ts +++ b/assets/script/game/heros/HeroSpine.ts @@ -7,7 +7,6 @@ import { Color, Component, EventTouch, sp, Vec3, _decorator } from "cc"; import { LayerUtil } from "../../../../extensions/oops-plugin-framework/assets/core/utils/LayerUtil"; import { smc } from "../../../script/game/common/SingletonModuleComp"; -// import Charactor, { CharactorDirection, CharactorState } from "../../map/view/map/charactor/Charactor"; import HeroSpineAnimator from "./HeroSpineAnimator"; const { ccclass, property } = _decorator; @@ -21,15 +20,11 @@ export class HeroSpine extends Component { animator: HeroSpineAnimator = null!; private spine!: sp.Skeleton; - // private charactor!: Charactor; onLoad() { // 角色控制组件 - // this.charactor = this.addComponent(Charactor)!; this.initAnimator(); - // this.setSkin("magic"); - // this.animator.play("idle", true); LayerUtil.setNodeLayer(LayerUtil.MAP, this.node); } @@ -38,21 +33,6 @@ export class HeroSpine extends Component { this.spine = this.animator.getComponent(sp.Skeleton)!; } - - - - - // setState(value: CharactorState): void { - // switch (value) { - // case CharactorState.Idle: - // this.idle(); - // break; - // case CharactorState.Run: - // this.walk(); - // break; - // } - // } - setSkin(value: string): void { console.log("HeroSpine setSkin", value); this.spine.setSkin(value); diff --git a/assets/script/game/map/CardController.ts b/assets/script/game/map/CardController.ts index c1a7b1a5..552eb4f6 100644 --- a/assets/script/game/map/CardController.ts +++ b/assets/script/game/map/CardController.ts @@ -1,9 +1,10 @@ -import { _decorator } from "cc"; +import { _decorator,v3 } from "cc"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; import { smc } from "../common/SingletonModuleComp"; import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; - +import { HeroCard } from "../monster/HeroCard"; +import { HeroCardViewComp } from "../monster/HeroCardViewComp"; const { ccclass, property } = _decorator; /** 视图层对象 */ @@ -12,6 +13,7 @@ const { ccclass, property } = _decorator; export class ControllerComp extends CCComp { /** 视图层逻辑代码分离演示 */ start() { + this.load_cards() // var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象 // this.on(ModuleEvent.Cmd, this.onHandler, this); } @@ -27,11 +29,30 @@ export class ControllerComp extends CCComp { smc.vm_data.shuaxin.min += smc.vm_data.shuaxin.speed*dt; if (smc.vm_data.shuaxin.min >= smc.vm_data.shuaxin.max) { smc.vm_data.shuaxin.min = 0; - oops.message.dispatchEvent("do_add_hero",this) + // oops.message.dispatchEvent("do_add_hero",this) + this.load_cards() + } + } + load_cards() { + let old_cards = ecs.query(ecs.allOf(HeroCardViewComp)) + if (old_cards.length > 0) { + old_cards.forEach(element => { + element.destroy(); + }); + } + // console.log(old_cards) + let cards_node= this.node.getChildByName("cards") + let x=0 + let y=0 + for (let i = 0; i < 5; i++) { + let card = ecs.getEntity(HeroCard); + let pos = v3(x,y) + card.load(pos,1001,cards_node); + x=x+120 } } /** 转场 */ - protected update(dt: number): void { + protected update(dt: number): void { this.shuaxin(dt) } diff --git a/assets/script/game/map/view/MapViewComp.ts b/assets/script/game/map/view/MapViewComp.ts index 535f8f96..5e501da7 100644 --- a/assets/script/game/map/view/MapViewComp.ts +++ b/assets/script/game/map/view/MapViewComp.ts @@ -10,6 +10,7 @@ import { Monster } from "../../monster/Monster"; import { MapViewScene } from "./MapViewScene"; import { Timer } from "../../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer"; import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops"; +import { CardSet } from "../../common/config/CardSet"; const { ccclass, property } = _decorator; @ccclass('MapViewComp') @@ -34,7 +35,8 @@ export class MapViewComp extends CCComp { this.addMonster() } private on_do_add_hero(event: string, args: any) { - this.addHero() + console.log("do_add_hero",args.HeroCardView) + this.addHero(args.HeroCardView.card_uid) this.addMonster() } @@ -74,18 +76,15 @@ export class MapViewComp extends CCComp { } } /** 添加玩家 */ - private addHero() { + private addHero(uuid:number=1001) { this.scene.node.active = true - if(smc.heros.length>0) { - let hero = ecs.getEntity(Hero); - let pos = v3(BoxSet.HERO_START,BoxSet.GAME_LINE) - let speed =smc.heros[0].speed - let camp = 1 - let prefab_path = smc.heros[0].prefab_path - let name = smc.heros[0].name - hero.load(pos,speed,camp,prefab_path,name); - smc.heros.splice(0,1) - } + let hero = ecs.getEntity(Hero); + let pos = v3(BoxSet.HERO_START,BoxSet.GAME_LINE) + let speed =CardSet[uuid].speed + let camp = 1 + let prefab_path = CardSet[uuid].prefab_path + let name = CardSet[uuid].name + hero.load(pos,speed,camp,prefab_path,name); } private addMonster() { this.scene.node.active = true diff --git a/assets/script/game/map/view/map/charactor.meta b/assets/script/game/map/view/map/charactor.meta deleted file mode 100644 index 3fac6503..00000000 --- a/assets/script/game/map/view/map/charactor.meta +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ver": "1.2.0", - "importer": "directory", - "imported": true, - "uuid": "f58752f0-7320-4a2f-b7a3-d4d59e42c1f6", - "files": [], - "subMetas": {}, - "userData": { - "compressionType": {}, - "isRemoteBundle": {} - } -} diff --git a/assets/script/game/map/view/map/charactor/Charactor.ts b/assets/script/game/map/view/map/charactor/Charactor.ts deleted file mode 100644 index 25d0013c..00000000 --- a/assets/script/game/map/view/map/charactor/Charactor.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { Component, game, Vec3, _decorator } from 'cc'; -import { MapViewScene } from '../../MapViewScene'; -import RoadNode from '../road/RoadNode'; -import { RoadType } from '../road/RoadType'; -import { ICharactorClip } from './ICharactorClip'; - -const { ccclass, property } = _decorator; - -export enum CharactorState { - Idle = 0, - Run = 1 -} - -export enum CharactorDirection { - none = -1, - bottom = 0, - left_bottom = 1, - left = 2, - left_up = 3, - up = 4, - right_up = 5, - right = 6, - right_bottom = 7 -} - -/** - * 场景角色 - */ -@ccclass('Charactor') -export default class Charactor extends Component { - /** 优化后的路点移动 */ - static WalkRoadNode: string = "WalkRoadNode"; - /** 移动到新的一个格子路点 */ - static NextRoadNode: string = "NextRoadNode"; - - private _direction: CharactorDirection = CharactorDirection.bottom; - public get direction(): CharactorDirection { - return this._direction; - } - public set direction(value: CharactorDirection) { - this._direction = value; - // this.clip.setDirection(value); - } - - private _state: CharactorState = 0; - public get state(): CharactorState { - return this._state; - } - public set state(value: CharactorState) { - this._state = value; - // this.clip.setState(value); - } - - private _alpha: number = 1; - public get alpha(): number { - return this._alpha; - } - public set alpha(value: number) { - this._alpha = value; - // this.clip.setAlpha(value); - } - - private _zIndex: number = 0; - /** 深度排序 */ - public get zIndex(): number { - return this._zIndex; - } - - private _pos!: Vec3; - /** 玩家地图上的位置 */ - public get pos(): Vec3 { - return this._pos; - } - public set pos(value: Vec3) { - this._pos = value; - // this.clip.setPos(value); - } - - public sceneMap: MapViewScene = null!; - public clip!: ICharactorClip; - public moving: boolean = false; - public joystic: boolean = false; - public joystic_dir: Vec3 = new Vec3(); - public moveSpeed: number = 200; - - /** - * 玩家当前所站在的地图节点 - */ - private _currentNode!: RoadNode; - private _moveAngle: number = 0; - private _roadNodeArr: RoadNode[] = []; - private _nodeIndex: number = 0; - - start() { - this.direction = CharactorDirection.bottom; - this.state = CharactorState.Idle; - } - - update(dt: number) { - - } - - joystick(dir: Vec3) { - if (this.moving) { - this.moving = false; - this._roadNodeArr.splice(0, this._roadNodeArr.length); - } - - if (dir.strictEquals(Vec3.ZERO)) { - this.joystic = false; - this.state = CharactorState.Idle; - } - else { - this.joystic = true; - this.state = CharactorState.Run; - } - this.joystic_dir.set(dir); - } - - public updateZIndex() { - this._zIndex = this.sceneMap.mapLayer!.height - this._pos.y; - } - - - - private walk() { - if (this._nodeIndex < this._roadNodeArr.length - 1) { - this._nodeIndex++; - - // 移动一个路点事件 - this.node.emit(Charactor.WalkRoadNode, this._roadNodeArr[this._nodeIndex]); - } - } - - public move() { - this.joystic = false; - - this.moving = true; - this.state = CharactorState.Run; - } - - public stop() { - this.moving = false; - this.state = CharactorState.Idle; - } -} diff --git a/assets/script/game/map/view/map/charactor/ICharactorClip.ts b/assets/script/game/map/view/map/charactor/ICharactorClip.ts deleted file mode 100644 index 1b64fbb8..00000000 --- a/assets/script/game/map/view/map/charactor/ICharactorClip.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { EventTouch, Vec3 } from "cc"; -import { CharactorDirection, CharactorState } from "./Charactor"; - -export interface ICharactorClip { - setDirection(value: CharactorDirection): void; - setState(value: CharactorState): void; - setAlpha(value: number): void; - setPos(value: Vec3): void; - checkTouch(event: EventTouch): boolean; -} \ No newline at end of file diff --git a/assets/script/game/map/view/map/charactor/MovieClip.ts b/assets/script/game/map/view/map/charactor/MovieClip.ts deleted file mode 100644 index 73d5beb5..00000000 --- a/assets/script/game/map/view/map/charactor/MovieClip.ts +++ /dev/null @@ -1,230 +0,0 @@ -import { CCBoolean, CCFloat, CCInteger, Component, Rect, Size, Sprite, SpriteFrame, Texture2D, UITransform, Vec2, _decorator } from 'cc'; - -const { ccclass, property } = _decorator; - -/** - * 动画播放器 - * @author 落日故人 QQ 583051842 - * - */ -@ccclass('MovieClip') -export default class MovieClip extends Component { - /** Sprite渲染器 */ - protected m_sprite: Sprite | null = null;; - - /** 动画计时间隔 每隔0.1s更新一帧 */ - protected timer: number = 0.1; - - /** 播放 时间 间隔 */ - @property({ type: CCFloat }) - public interval: number = 0.1; - - /** 贴图文件名 */ - @property({ type: Texture2D }) - public texture: Texture2D | null = null; - - /** 播放次数 */ - @property({ type: CCInteger }) - public playTimes: number = 0; - - @property({ type: CCInteger }) - public row: number = 4; - - /** 图片切割成几列 */ - @property({ type: CCInteger }) - public col: number = 4; - - @property({ type: CCInteger }) - public rowIndex: number = 0; - - @property(CCBoolean) - public isAll: boolean = false; - - @property(CCBoolean) - public autoPlayOnLoad: boolean = true; - - /** 播放完自动销毁 */ - @property(CCBoolean) - public autoDestroy: boolean = false; - - @property(CCFloat) - public begin: number = 0; - - @property(CCFloat) - public end: number = 0; - - /** 动画帧数 */ - public totalFrame: number = 8; - - /** 当前帧数 */ - public currentFrame: number = 0; - - /** 当前播放了第几次 */ - private currentTimes: number = 0; - - /** 影片是否在跑动中 */ - public running: boolean = true; - - //private _direction:number = 1; - - private _playIndex: number = 0; - private _pieceWidth: number = 0; - private _pieceHeight: number = 0; - private _bitmapArr: SpriteFrame[][] = []; - - onLoad() { - //this. m_clips = new SpriteFrame[this.row][this.col]; - //Texture2D tex = Resources.Load("Image/Avatar/" + m_sprite_name); - - //this.begin = 0; - - if (this.end == 0) { - this.end = this.col; - } - - this.rowIndex = this.clamp(this.rowIndex, 0, this.row - 1); - - this._pieceWidth = this.texture!.width / this.col; - this._pieceHeight = this.texture!.height / this.row; - - this.m_sprite = this.getComponent(Sprite); - - if (!this.m_sprite) { - this.m_sprite = this.addComponent(Sprite); - } - - for (var i = 0; i < this.row; i++) { - this._bitmapArr[i] = []; - - for (var j = 0; j < this.col; j++) { - var spriteFrame: SpriteFrame = new SpriteFrame(); - spriteFrame.texture = this.texture!; - spriteFrame.rect = new Rect(j * this._pieceWidth, i * this._pieceHeight, this._pieceWidth, this._pieceHeight); - spriteFrame.rotated = false; - spriteFrame.offset = new Vec2(0, 0); - spriteFrame.originalSize = new Size(this._pieceWidth, this._pieceHeight); - this._bitmapArr[i][j] = spriteFrame; - } - } - - this.m_sprite!.spriteFrame = this._bitmapArr[this.rowIndex][0]; - this.m_sprite!.spriteFrame.width - - var uiTransform = this.getComponent(UITransform); - - if (uiTransform) { - uiTransform.width = this._pieceWidth; - uiTransform.height = this._pieceHeight; - } - - this.timer = 0; - this.running = this.autoPlayOnLoad; - } - - update(dt: number) { - if (!this.running) - return; - - if (this.playTimes != 0 && this.currentTimes == this.playTimes) { - this.running = false; - return; - } - - this.timer -= dt; - - if (this.timer <= 0) { - this.timer = this.interval; - this.currentFrame = this.currentFrame % this.col; - - this.playAction(); - - this.currentFrame++; - if (this.currentFrame == this.col) { - - if (this.isAll) { - this.rowIndex++; - if (this.rowIndex == this.row) { - this.currentTimes++; - this.node.emit("completeTimes"); - - if (this.playTimes != 0 && this.currentTimes == this.playTimes) { - this.node.emit("complete"); - - if (this.autoDestroy) { - this.node.destroy(); - } - } - } - - this.rowIndex %= this.row; - } - else { - this.currentTimes++; - this.node.emit("completeTimes"); - - if (this.playTimes != 0 && this.currentTimes == this.playTimes) { - this.node.emit("complete"); - - if (this.autoDestroy) { - this.node.destroy(); - } - } - } - } - } - } - - private playAction() { - this.rowIndex = this.clamp(this.rowIndex, 0, this.row - 1); - this._playIndex = this._playIndex % (this.end - this.begin) + this.begin; - this.m_sprite!.spriteFrame = this._bitmapArr[this.rowIndex][this._playIndex]; - //this.m_sprite.spriteFrame.setRect(this.rect); - - this._playIndex++; - } - - /** 播放影片 */ - public play() { - this.running = true; - } - - /** 停止播放影片 */ - public stop() { - this.running = false; - } - - /** - * 跳帧播放 - * @param frame 帧 - */ - public gotoAndPlay(frame: number) { - this.running = true; - this._playIndex = frame; - this._playIndex = this.clamp(this._playIndex, 0, this.col - 1); - } - - /** - * 跳帧停止 - * @param frame 帧 - */ - public gotoAndStop(frame: number) { - this.running = false; - - this._playIndex = frame; - this._playIndex = this.clamp(this._playIndex, 0, this.col - 1); - - this.m_sprite!.spriteFrame = this._bitmapArr[this.rowIndex][this._playIndex]; - } - - public clamp(value: number, minLimit: number, maxLimit: number) { - if (value < minLimit) { - return minLimit; - } - - if (value > maxLimit) { - return maxLimit; - } - - return value; - } -} diff --git a/assets/script/game/map/view/map/layer/EntityLayer.ts b/assets/script/game/map/view/map/layer/EntityLayer.ts index c4be5a3e..44cc3511 100644 --- a/assets/script/game/map/view/map/layer/EntityLayer.ts +++ b/assets/script/game/map/view/map/layer/EntityLayer.ts @@ -25,11 +25,7 @@ export default class EntityLayer extends Component { // this.node.children.sort(this.zIndexSort); } - // private zIndexSort(a: Node, b: Node) { - // let a_zIndex = a.getComponent(Charactor)!.zIndex; - // let b_zIndex = b.getComponent(Charactor)!.zIndex; - // return a_zIndex - b_zIndex; - // } + public clear() { this.node.children.forEach(n => { diff --git a/assets/script/game/map/view/map/layer/MapLayer.ts b/assets/script/game/map/view/map/layer/MapLayer.ts index 2ac98e23..30a1d0c5 100644 --- a/assets/script/game/map/view/map/layer/MapLayer.ts +++ b/assets/script/game/map/view/map/layer/MapLayer.ts @@ -14,102 +14,19 @@ const { ccclass, property } = _decorator; */ @ccclass('MapLayer') export default class MapLayer extends Component { - /** 切割小图片集 */ - private _sliceImgDic: { [key: string]: Sprite | null } = {}; - private _mapParams: MapParams | null = null; + @property(Sprite) private bgImg: Sprite | null = null; public init(mapParams: MapParams): void { - this._mapParams = mapParams; - - if (!this.bgImg) { - var bgNode: Node = new Node(); - this.node.addChild(bgNode); - bgNode.layer = Layers.Enum.UI_2D; - - this.bgImg = bgNode.addComponent(Sprite); - this.bgImg.sizeMode = Sprite.SizeMode.RAW; - bgNode.getComponent(UITransform)!.anchorX = 0; - bgNode.getComponent(UITransform)!.anchorY = 0; - } - - var spriteFrame: SpriteFrame = new SpriteFrame(); - spriteFrame.texture = this._mapParams.bgTex!; - - this.bgImg.spriteFrame = spriteFrame; - - //如果是马赛克小地图,则需要把小地图缩放成原始地图一样大小 - if (mapParams.mapLoadModel == MapLoadModel.slices) { - this.bgImg.getComponent(UITransform)!.width = mapParams.mapWidth; - this.bgImg.getComponent(UITransform)!.height = mapParams.mapHeight; - } - this.getComponent(UITransform)!.width = this.width; this.getComponent(UITransform)!.height = this.height; } - /** - * 根据视图区域加载小地图 - * @param px 滚动视图左上角的x坐标 - * @param py 滚动视图左上角的y坐标 - * - */ - public loadSliceImage(px: number, py: number): void { - // var iy1: number = Math.floor(py / this._mapParams!.sliceHeight); - // var iy2: number = Math.floor((py + this._mapParams!.viewHeight) / this._mapParams!.sliceHeight); - - // var jx1: number = Math.floor(px / this._mapParams!.sliceWidth); - // var jx2: number = Math.floor((px + this._mapParams!.viewWidth) / this._mapParams!.sliceWidth); - - // var key: string; - - // for (var i: number = iy1; i <= iy2; i++) { - // for (var j: number = jx1; j <= jx2; j++) { - // key = (i + 1) + "_" + (j + 1); // 图片的索引是从1开始的,所以要加1 - - // if (!this._sliceImgDic[key]) { - // let bitmap: Sprite = this.getSliceSprite(key) - // this._sliceImgDic[key] = bitmap; - // this.node.addChild(bitmap.node); - // bitmap.node.position = new Vec3(j * this._mapParams!.sliceWidth, i * this._mapParams!.sliceHeight, 0) - - // // var path: string = `maps/${this._mapParams!.bgName}/${this._mapParams!.bgName}/slices/${key}/texture`; - // // oops.res.load("remote", path, Texture2D, (error: Error | null, tex: Texture2D) => { - // var path: string = smc.map.MapModel.getResContentSlices(this._mapParams!.bgName, key); - // oops.res.load(path, Texture2D, (error: Error | null, tex: Texture2D) => { - // if (error) { - // console.error(error); - // } - // var spriteFrame: SpriteFrame = new SpriteFrame(); - // spriteFrame.texture = tex; - // bitmap.spriteFrame = spriteFrame; - // }); - // } - // } - // } - } - - private getSliceSprite(name: string) { - var node: Node = new Node(name); - node.layer = LayerUtil.MAP.mask; // Layers.Enum.UI_2D; - var sprite: Sprite = node.addComponent(Sprite); - sprite.sizeMode = Sprite.SizeMode.RAW; - node.getComponent(UITransform)!.anchorX = 0; - node.getComponent(UITransform)!.anchorY = 0; - return sprite; - } public clear(): void { this.bgImg!.spriteFrame = null; - - for (var key in this._sliceImgDic) { - var sprite: Sprite | null = this._sliceImgDic[key]; - sprite && sprite.node.destroy(); - this._sliceImgDic[key] = null; - delete this._sliceImgDic[key]; - } } public get bgImage(): Sprite { @@ -121,7 +38,6 @@ export default class MapLayer extends Component { return this.bgImg.getComponent(UITransform)!.width; } - return this._mapParams!.viewWidth; } public get height(): number { @@ -129,6 +45,5 @@ export default class MapLayer extends Component { return this.bgImg.getComponent(UITransform)!.height; } - return this._mapParams!.viewHeight; } } \ No newline at end of file diff --git a/assets/script/game/map/view/map/layer/SkillLayer.ts b/assets/script/game/map/view/map/layer/SkillLayer.ts index 6f69c504..3a220a72 100644 --- a/assets/script/game/map/view/map/layer/SkillLayer.ts +++ b/assets/script/game/map/view/map/layer/SkillLayer.ts @@ -42,11 +42,7 @@ export default class SkillLayer extends Component { // this.node.children.sort(this.zIndexSort); } - // private zIndexSort(a: Node, b: Node) { - // let a_zIndex = a.getComponent(Charactor)!.zIndex; - // let b_zIndex = b.getComponent(Charactor)!.zIndex; - // return a_zIndex - b_zIndex; - // } + public clear() { this.node.children.forEach(n => { diff --git a/assets/script/game/monster/Hero.ts b/assets/script/game/monster/Hero.ts index 89a4d59a..10d1c6e7 100644 --- a/assets/script/game/monster/Hero.ts +++ b/assets/script/game/monster/Hero.ts @@ -36,7 +36,7 @@ export class Hero extends ecs.Entity { /** 加载角色 */ load(pos: Vec3 = Vec3.ZERO,speed:number = 100,camp:number = 1,prefab_path:string = "monster",name:string="hero") { // var path = "game/monster/"+prefab_path; - var path = "game/monster/hero"; + var path = "game/heros/hero"; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); diff --git a/assets/script/game/monster/HeroCard.ts b/assets/script/game/monster/HeroCard.ts index 73903f23..1f59bdf6 100644 --- a/assets/script/game/monster/HeroCard.ts +++ b/assets/script/game/monster/HeroCard.ts @@ -11,7 +11,8 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { UIID } from "../common/config/GameUIConfig"; import { smc } from "../common/SingletonModuleComp"; - +import{HeroCardViewComp} from "./HeroCardViewComp"; +import { CardSet } from "../common/config/CardSet"; /** 角色实体 */ @ecs.register(`HeroCard`) export class HeroCard extends ecs.Entity { @@ -27,28 +28,31 @@ export class HeroCard extends ecs.Entity { } destroy(): void { - // this.remove(MonsterViewComp); + this.remove(HeroCardViewComp); super.destroy(); } /** 加载角色 */ - load(pos: Vec3 = Vec3.ZERO,speed:number = 100,camp:number = 1,prefab_path:string = "monster",name:string="hero") { + load(pos: Vec3 = Vec3.ZERO,uuid:number=1001,parent:Node) { // var path = "game/monster/"+prefab_path; - var path = "game/monster/hero"; - + var path = "game/heros/cards/hero_card"; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); - var scene = smc.map.MapView.scene; - node.parent = scene.entityLayer!.node!; - node.getChildByName("avatar").setScale(node.getChildByName("avatar").scale.x*camp, node.getChildByName("avatar").scale.y, node.getChildByName("avatar").scale.z); + node.parent = parent; + // node.getChildByName("avatar").setScale(node.getChildByName("avatar").scale.x*camp, node.getChildByName("avatar").scale.y, node.getChildByName("avatar").scale.z); node.setPosition(pos) - // console.log(node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite)) - const url = 'game/heros/hero/'+prefab_path+'/spriteFrame'; - resources.load(url, SpriteFrame, (err: any, spriteFrame) => { - const sprite = node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite); + + var hcv = node.getComponent(HeroCardViewComp)!; + hcv.card_name=CardSet[uuid].name + hcv.card_uid=uuid + this.add(hcv); + // // console.log(node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite)) + // const url = 'game/heros/hero/'+prefab_path+'/spriteFrame'; + // resources.load(url, SpriteFrame, (err: any, spriteFrame) => { + // const sprite = node.getChildByName("avatar").getChildByName("TNode").getChildByName("bb").getComponent(Sprite); - sprite.spriteFrame = spriteFrame; - }); + // sprite.spriteFrame = spriteFrame; + // }); } diff --git a/assets/script/game/monster/HeroCardViewComp.ts b/assets/script/game/monster/HeroCardViewComp.ts new file mode 100644 index 00000000..48e3438f --- /dev/null +++ b/assets/script/game/monster/HeroCardViewComp.ts @@ -0,0 +1,77 @@ +import { _decorator ,Vec2,NodeEventType,EventTouch} from "cc"; +import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; +import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; +import { data } from "../data/data"; +import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; + +const { ccclass, property } = _decorator; + +/** 视图层对象 */ +@ccclass('HeroCardViewComp') +@ecs.register('HeroCardView', false) +export class HeroCardViewComp extends CCComp { + card_name:string = "hero_card"; + card_type:string = "hero"; + card_uid:number = 1000; + /** 方向 */ + private _dir: Vec2 = new Vec2(0, 0); + public get dir(): Vec2 { + return this._dir; + } + public set dir(value: Vec2) { + this._dir = value; + } + pos_x=0; + pos_y=0; + protected onLoad(): void { + this.node.on(NodeEventType.TOUCH_START, this.onTouchMove, this); + this.node.on(NodeEventType.TOUCH_MOVE, this.onTouchMove, this); + this.node.on(NodeEventType.TOUCH_END, this.onTouchEnd, this); + this.node.on(NodeEventType.TOUCH_CANCEL, this.onTouchEnd, this); + oops.message.on("destroy hero_card", this.on_destroy_node, this); + } + + + private on_destroy_node(event: string, args: any) { + // if(this.ent.eid == args){ + // this.reset(); + // } + } + + onTouchMove(event: EventTouch) { + console.log("onTouchMove"); + let delta = event.getDelta(); + this.node.setPosition(this.node.position.x+delta.x,this.node.position.y+delta.y); + } + onTouchEnd(){ + if(this.node.position.y-this.pos_y > 50){ + this.use_card() + }else{ + this.node.setPosition(this.pos_x,this.pos_y); + } + console.log(ecs.query(ecs.allOf(HeroCardViewComp))) + + } + use_card(){ + oops.message.dispatchEvent("do_add_hero",this.ent) + this.ent.destroy(); + } + /** 视图层逻辑代码分离演示 */ + start() { + this.pos_x=this.node.position.x; + this.pos_y=this.node.position.y; + } + + /** 全局消息逻辑处理 */ + // private onHandler(event: string, args: any) { + // switch (event) { + // case ModuleEvent.Cmd: + // break; + // } + // } + + /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ + reset() { + this.node.destroy(); + } +} \ No newline at end of file diff --git a/assets/script/game/map/view/map/charactor/MovieClip.ts.meta b/assets/script/game/monster/HeroCardViewComp.ts.meta similarity index 52% rename from assets/script/game/map/view/map/charactor/MovieClip.ts.meta rename to assets/script/game/monster/HeroCardViewComp.ts.meta index 1ea8f60c..498db304 100644 --- a/assets/script/game/map/view/map/charactor/MovieClip.ts.meta +++ b/assets/script/game/monster/HeroCardViewComp.ts.meta @@ -2,10 +2,8 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "cb924b7b-003d-4995-a223-f41612b1d87c", + "uuid": "ad422ad0-14e7-4547-8703-1bb4d5b10d01", "files": [], "subMetas": {}, - "userData": { - "simulateGlobals": [] - } + "userData": {} } diff --git a/assets/script/game/monster/Monster.ts b/assets/script/game/monster/Monster.ts index b690e206..5ac83f2c 100644 --- a/assets/script/game/monster/Monster.ts +++ b/assets/script/game/monster/Monster.ts @@ -36,7 +36,7 @@ export class Monster extends ecs.Entity { /** 加载角色 */ load(pos: Vec3 = Vec3.ZERO,speed:number = 100,camp:number = 1,prefab_path:string = "monster",name:string="hero") { // var path = "game/monster/"+prefab_path; - var path = "game/monster/hero"; + var path = "game/heros/hero"; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); @@ -70,7 +70,7 @@ export class Monster extends ecs.Entity { oops.message.dispatchEvent("monster_load",this) } - console.log(smc.heros_in,smc.monsters_in) + // console.log(smc.heros_in,smc.monsters_in) } diff --git a/assets/script/game/monster/MonsterSpine.ts b/assets/script/game/monster/MonsterSpine.ts index 480ae17c..a8d52b57 100644 --- a/assets/script/game/monster/MonsterSpine.ts +++ b/assets/script/game/monster/MonsterSpine.ts @@ -7,7 +7,6 @@ import { Color, Component, EventTouch, sp, Vec3, _decorator } from "cc"; import { LayerUtil } from "../../../../extensions/oops-plugin-framework/assets/core/utils/LayerUtil"; import { smc } from "../../../script/game/common/SingletonModuleComp"; -// import Charactor, { CharactorDirection, CharactorState } from "../../map/view/map/charactor/Charactor"; import MonsterSpineAnimator from "./MonsterSpineAnimator"; const { ccclass, property } = _decorator; @@ -21,11 +20,9 @@ export class MonsterSpine extends Component { animator: MonsterSpineAnimator = null!; private spine!: sp.Skeleton; - // private charactor!: Charactor; onLoad() { // 角色控制组件 - // this.charactor = this.addComponent(Charactor)!; this.initAnimator(); // this.setSkin("magic"); @@ -43,16 +40,7 @@ export class MonsterSpine extends Component { - // setState(value: CharactorState): void { - // switch (value) { - // case CharactorState.Idle: - // this.idle(); - // break; - // case CharactorState.Run: - // this.walk(); - // break; - // } - // } + setSkin(value: string): void { console.log("MonsterSpine setSkin", value); diff --git a/assets/script/game/monster/MonsterViewComp.ts b/assets/script/game/monster/MonsterViewComp.ts index 4ff51be6..dbb8f3d9 100644 --- a/assets/script/game/monster/MonsterViewComp.ts +++ b/assets/script/game/monster/MonsterViewComp.ts @@ -5,7 +5,7 @@ * @LastEditTime: 2022-08-17 12:36:18 */ -import { Vec3, _decorator , v3,Collider2D,Contact2DType,IPhysics2DContact,EPhysics2DDrawFlags,Label,Node,Prefab,instantiate} from "cc"; +import { Vec3, _decorator , v3,Collider2D,Contact2DType,IPhysics2DContact,EPhysics2DDrawFlags,Label,Node,Prefab,instantiate,ProgressBar} from "cc"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp"; import { MonsterSpine } from "./MonsterSpine"; @@ -17,6 +17,7 @@ import { smc } from "../common/SingletonModuleComp"; import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { baseCom } from "../skills/baseCom"; import { Skill } from "../skills/Skill"; +import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer"; const { ccclass, property } = _decorator; /** 角色显示组件 */ @@ -30,23 +31,37 @@ export class MonsterViewComp extends CCComp { camp: number = 1; /**角色类型 1:近战 2 远程 */ type: number = 1; + /** 状态 1:move ,2: act 3: stop */ + state: number = 1; + /** 血量 */ + hp: number = 100; + hp_max: number = 100; + hp_speed: number = 0; //回复速度 + /**能量**/ + power: number = 0; + power_max: number = 100; + power_speed: number = 1; //回复速度 + skill_name: string = "base"; + max_skill_name: string = "base"; + /**攻击力 */ + atk: number = 10; + /**攻击速度 */ + // atk_speed: number = 1; + atk_cd: number = 1.3; + atk_time: number = 0; /** 角色移动速度 */ speed: number = 100; /** 角色初始速度 */ ospeed: number = 100; - /**攻击速度 */ - atk_speed: number = 1; - atk_cd: number = 0; - /** 状态 1:move ,2: act 3: stop */ - state: number = 1; - Tpos: Vec3 = v3(0,-60,0); - timer: number = 0; + stop_cd: number = 0; + private timer:Timer = new Timer(0.1); + is_dead:boolean = false; + /** 视图层逻辑代码分离演示 */ start () { // 注册单个碰撞体的回调函数 let collider = this.getComponent(Collider2D); - if (collider) { collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); collider.on(Contact2DType.END_CONTACT, this.onEndContact, this); @@ -54,37 +69,10 @@ export class MonsterViewComp extends CCComp { collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this); } - } onBeginContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { - switch (selfCollider.group) { - case BoxSet.MONSTER: - switch (otherCollider.group){ - case BoxSet.HERO: - this.state = 2; - // console.log('onBeginContact',selfCollider,otherCollider); - // this.speed = 0; - // this.timer = 1; - // console.log("speed:"+this.speed+" | timer:"+this.timer); - break; - case BoxSet.HERO_SKILL: - - break; - case BoxSet.MONSTER_SKILL: - break; - } - break; - case BoxSet.HERO: - switch (otherCollider.group){ - case BoxSet.MONSTER: - this.state = 2; - break; - case BoxSet.HERO_SKILL: - - break; - } - } + } onEndContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { @@ -96,17 +84,47 @@ export class MonsterViewComp extends CCComp { // console.log('onPreSolve'); // } onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { - if (otherCollider.group === BoxSet.HERO && selfCollider.group === BoxSet.MONSTER) { - // console.log('onPostSolve otherCollider.group :'+otherCollider.group); - // this.speed = 0; - // this.timer = 1; + if(otherCollider.group== BoxSet.HERO_SKILL || otherCollider.group== BoxSet.MONSTER_SKILL){ + this.in_atked(); + this.hp_change(10); } + // switch (selfCollider.group) { + // case BoxSet.HERO: + // switch (otherCollider.group){ + // case BoxSet.MONSTER: + // break; + // case BoxSet.MONSTER_SKILL: + // this.in_atked(); + // this.hp_change(10); + // break; + // } + // case BoxSet.MONSTER: + // switch (otherCollider.group){ + // case BoxSet.HERO: + // // console.log('onBeginContact',selfCollider,otherCollider); + // // setTimeout(() => { + // // this.toDestroy(); + // // }, 10); + + // // this.speed = 0; + // // this.stop_cd = 1; + // // console.log("speed:"+this.speed+" | stop_cd:"+this.stop_cd); + // break; + // case BoxSet.HERO_SKILL: + // this.in_atked(); + // this.hp_change(10); + // break; + // // case BoxSet.MONSTER_SKILL: + // // break; + // } + // break; + + // } } - + onLoad() { this.as = this.getComponent(MonsterSpine); - // console.log('hero load ent:',this); // PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.Aabb | // EPhysics2DDrawFlags.Pair | @@ -116,7 +134,7 @@ export class MonsterViewComp extends CCComp { } change_name(hero_name:string='hero',camp:number=1){ this.name=hero_name; - let label:any =this.node.getChildByName("top").getChildByName("lab_name") + let label:any =this.node.getChildByName("lab_name") label.getComponent(Label)!.string = hero_name; let collider = this.getComponent(Collider2D); if(camp==1){ @@ -124,10 +142,12 @@ export class MonsterViewComp extends CCComp { }else{ collider.group=BoxSet.MONSTER; } - } + update(dt: number){ - + if (this.timer.update(dt)) { + this.power_change(this.power_speed) + } this.in_destroy(); this.in_stop(dt); this.in_act(dt); @@ -148,22 +168,49 @@ export class MonsterViewComp extends CCComp { move(dt: number){ this.node.setPosition(this.node.position.x+dt*this.speed*this.camp, this.node.position.y, this.node.position.z); } + power_change(power: number){ + this.power += power; + if(this.power >= this.power_max){ + this.load_skill(this.max_skill_name); + this.power = 0 + } + let power_progress= this.power/this.power_max; + this.node.getChildByName("power").getComponent(ProgressBar)!.progress = power_progress; + } in_act(dt: number) { - if(this.atk_cd >= this.atk_speed){ - this.atk_cd = 0; + if(this.atk_time >= this.atk_cd){ + this.atk_time = 0; // console.log("atk_cd:"+this.atk_cd); this.as.atk(); - this.load_skill(); + this.load_skill(this.skill_name); + } + this.atk_time += dt; + } + hp_change(hp: number){ + if(this.is_dead){ + return; + } + this.hp -= hp; + if(this.hp > this.hp_max){ + this.hp = this.hp_max; + } + let hp_progress= this.hp/this.hp_max; + this.node.getChildByName("hp").getComponent(ProgressBar)!.progress = hp_progress; + if(this.hp <= 0){ + this.is_dead = true; + setTimeout(() => { + this.toDestroy(); + }, 15); + } - this.atk_cd += dt; } /** 静止时间 */ in_stop (dt: number) { - if(this.timer > 0){ - this.timer -= dt; - if(this.timer <= 0){ + if(this.stop_cd > 0){ + this.stop_cd -= dt; + if(this.stop_cd <= 0){ this.speed = this.ospeed; - this.timer = 0; + this.stop_cd = 0; } } } @@ -171,12 +218,12 @@ export class MonsterViewComp extends CCComp { switch (this.camp) { case -1: if(this.node.position.x < BoxSet.LETF_END){ - this.reset(); + this.toDestroy(); } break; case 1: if(this.node.position.x > BoxSet.RIGHT_END){ - this.reset(); + this.toDestroy(); } break; } @@ -188,25 +235,38 @@ export class MonsterViewComp extends CCComp { } }); } - load_skill(){ + load_skill(skill_name){ // console.log("load_skill"); let skill = ecs.getEntity(Skill); let pos = v3(0,0) - let speed =200 + let speed =150 let scale = this.camp let range = 80 - skill.load(pos,speed,range,scale,this.node); + skill.load(pos,speed,range,scale,this.node,skill_name,this.atk); } in_atked() { var path = "game/skills/atked"; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); - + let pos = v3(0,0) + node.setPosition(pos) + node.parent = this.node; + } + dead(){ + var path = "game/skills/dead"; + var prefab: Prefab = oops.res.get(path, Prefab)!; + var node = instantiate(prefab); + node.setPosition(this.node.position) + node.parent = this.node.parent; + } + toDestroy(){ + this.dead(); + smc.monsters_in = smc.monsters_in.filter(element => element.eid !== this.ent.eid); + smc.monsters_in = smc.monsters_in.filter(element => element.eid !== this.ent.eid); + this.ent.destroy(); } reset() { - // console.log("node destroy:",this.node,this.ent) - smc.monsters_in = smc.monsters_in.filter(element => element.eid !== this.ent.eid); - smc.monsters_in = smc.monsters_in.filter(element => element.eid !== this.ent.eid); + this.is_dead = false; this.node.destroy(); } diff --git a/assets/script/game/role/view/RoleSpine.ts b/assets/script/game/role/view/RoleSpine.ts index 62c05541..3971c1cc 100644 --- a/assets/script/game/role/view/RoleSpine.ts +++ b/assets/script/game/role/view/RoleSpine.ts @@ -7,7 +7,6 @@ import { Color, Component, EventTouch, sp, Vec3, _decorator } from "cc"; import { LayerUtil } from "../../../../../extensions/oops-plugin-framework/assets/core/utils/LayerUtil"; import { smc } from "../../common/SingletonModuleComp"; -// import Charactor, { CharactorDirection, CharactorState } from "../../map/view/map/charactor/Charactor"; import RoleSpineAnimator from "./RoleSpineAnimator"; const { ccclass, property } = _decorator; @@ -21,11 +20,9 @@ export class RoleSpine extends Component { animator: RoleSpineAnimator = null!; private spine!: sp.Skeleton; - // private charactor!: Charactor; onLoad() { // 角色控制组件 - // this.charactor = this.addComponent(Charactor)!; this.initAnimator(); // this.setSkin("magic"); @@ -42,17 +39,6 @@ export class RoleSpine extends Component { - // setState(value: CharactorState): void { - // switch (value) { - // case CharactorState.Idle: - // this.idle(); - // break; - // case CharactorState.Run: - // this.walk(); - // break; - // } - // } - setSkin(value: string): void { console.log("RoleSpine setSkin", value); this.spine.setSkin(value); diff --git a/assets/script/game/skills/Skill.ts b/assets/script/game/skills/Skill.ts index 329f299d..dd5fd022 100644 --- a/assets/script/game/skills/Skill.ts +++ b/assets/script/game/skills/Skill.ts @@ -27,23 +27,23 @@ export class Skill extends ecs.Entity { this.remove(SkillCom); super.destroy(); } - load(pos: Vec3 = Vec3.ZERO,speed:number = 100,range:number = 50,scale:number = 1,parent:Node) { - // var path = "game/monster/"+prefab_path; - var path = "game/skills/base"; + load(pos: Vec3 = Vec3.ZERO,speed:number = 100,range:number = 50,scale:number = 1,parent:Node,skill_name:string = "base",atk:number =10) { + var path = "game/skills/"+skill_name; var prefab: Prefab = oops.res.get(path, Prefab)!; var node = instantiate(prefab); node.parent = parent; node.setPosition(pos) - var mv = node.getComponent(SkillCom)!; - mv.speed = speed; - mv.range = range; - mv.scale = scale; + var sv = node.getComponent(SkillCom)!; + sv.speed = speed; + sv.range = range; + sv.scale = scale; + sv.atk = atk; if(scale == 1){ - mv.change_collider_group(BoxSet.HERO_SKILL) + sv.change_collider_group(BoxSet.HERO_SKILL) }else{ - mv.change_collider_group(BoxSet.MONSTER_SKILL) + sv.change_collider_group(BoxSet.MONSTER_SKILL) } - this.add(mv); + this.add(sv); } } diff --git a/assets/script/game/skills/SkillCom.ts b/assets/script/game/skills/SkillCom.ts index cb196fde..0d3ca6f9 100644 --- a/assets/script/game/skills/SkillCom.ts +++ b/assets/script/game/skills/SkillCom.ts @@ -17,20 +17,29 @@ export class SkillCom extends CCComp { speed:number = 600; range:number = 80; scale:number = 1; + atk:number = 10; + is_destroy:boolean = false; start() { let collider = this.getComponent(Collider2D); if (collider) { - collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); + // collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); + collider.on(Contact2DType.POST_SOLVE, this.onPostSolve, this); } } - onBeginContact (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { + onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) { switch (selfCollider.group) { case BoxSet.HERO_SKILL: switch (otherCollider.group){ case BoxSet.MONSTER: - // this.reset() - console.log('hero skill',selfCollider); + if(this.is_destroy){ + return + }else{ + this.is_destroy = true; + this.toDestroy(); + } + + // this.speed = 0; // this.timer = 1; // console.log("speed:"+this.speed+" | timer:"+this.timer); @@ -40,6 +49,12 @@ export class SkillCom extends CCComp { case BoxSet.MONSTER_SKILL: switch (otherCollider.group){ case BoxSet.HERO: + if(this.is_destroy){ + return + }else{ + this.is_destroy = true; + this.toDestroy(); + } // console.log('monster skill',selfCollider,otherCollider); // this.reset() break; @@ -57,7 +72,13 @@ export class SkillCom extends CCComp { this.node.setPosition(v3(this.node.position.x+deltaTime*this.speed*this.scale,this.node.position.y,this.node.position.z)) if(Math.abs(this.node.position.x) > this.range) { - this.reset() + if(this.is_destroy){ + return + }else{ + this.is_destroy = true; + this.toDestroy() + } + } } @@ -68,9 +89,14 @@ export class SkillCom extends CCComp { // break; // } // } - + toDestroy() { + setTimeout(() => { + this.ent.destroy() + }, 15); + } /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ reset() { + this.is_destroy=false this.node.destroy(); } } \ No newline at end of file diff --git a/assets/script/game/skills/atked.ts b/assets/script/game/skills/atked.ts new file mode 100644 index 00000000..58fda709 --- /dev/null +++ b/assets/script/game/skills/atked.ts @@ -0,0 +1,20 @@ +import { _decorator, Component, Node } from 'cc'; +const { ccclass, property } = _decorator; + +@ccclass('atked') +export class atked extends Component { + time = 0.3; + start() { + + } + + update(deltaTime: number) { + this.time = this.time - deltaTime; + if(this.time <= 0) + { + this.node.destroy() + } + } +} + + diff --git a/assets/script/game/map/view/map/charactor/Charactor.ts.meta b/assets/script/game/skills/atked.ts.meta similarity index 52% rename from assets/script/game/map/view/map/charactor/Charactor.ts.meta rename to assets/script/game/skills/atked.ts.meta index 74a36cba..0b92d382 100644 --- a/assets/script/game/map/view/map/charactor/Charactor.ts.meta +++ b/assets/script/game/skills/atked.ts.meta @@ -2,10 +2,8 @@ "ver": "4.0.23", "importer": "typescript", "imported": true, - "uuid": "cbc1684f-2e32-4088-a784-3c147c9b6f31", + "uuid": "65d6266f-bba6-4b98-8343-2a67642ec7eb", "files": [], "subMetas": {}, - "userData": { - "simulateGlobals": [] - } + "userData": {} } diff --git a/assets/script/game/skills/dead.ts b/assets/script/game/skills/dead.ts new file mode 100644 index 00000000..2230150a --- /dev/null +++ b/assets/script/game/skills/dead.ts @@ -0,0 +1,18 @@ +import { _decorator, Component, Node ,Animation} from 'cc'; +const { ccclass, property } = _decorator; + +@ccclass('dead') +export class dead extends Component { + start() { + let anim = this.node.getComponent(Animation); + anim.on(Animation.EventType.FINISHED, this.onAnimationFinished, this); + } + onAnimationFinished(){ + this.node.destroy(); + } + update(deltaTime: number) { + + } +} + + diff --git a/assets/script/game/skills/dead.ts.meta b/assets/script/game/skills/dead.ts.meta new file mode 100644 index 00000000..8d27de74 --- /dev/null +++ b/assets/script/game/skills/dead.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "0f3c4261-15b1-4eda-b105-a81249ee116f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/doc/ecs/ecs.md b/doc/ecs/ecs.md index 1994105b..5b3c1735 100644 --- a/doc/ecs/ecs.md +++ b/doc/ecs/ecs.md @@ -61,7 +61,7 @@ entity.add(compObj) entity.remove(HelloComponent); // 组件对象会从实体身上移除并放入组件缓存池中 ``` -- 删除组件但不删除组件对象:实际开发中,组件身上有很多属性,如果删除了后面再添加,属性值还原是个麻烦的问题, +- 删除组件但不删除组件对象身上:实际开发中,组件有很多属性,如果删除了后面再添加,属性值还原是个麻烦的问题, remove方法可以删除组件,但是不真正从实体身上移除该组件对象,这样下次重新添加组件时还是会添加那个组件对象。 ```Typescript entity.remove(HelloComponent, false) diff --git a/settings/v2/packages/project.json b/settings/v2/packages/project.json index cee60f7f..3483d77e 100644 --- a/settings/v2/packages/project.json +++ b/settings/v2/packages/project.json @@ -44,8 +44,8 @@ ], "collisionMatrix": { "0": 7, - "1": 21, - "2": 11, + "1": 23, + "2": 15, "3": 4, "4": 2 }