Bläddra i källkod

修改地图

修改地图
Kziwws 1 vecka sedan
förälder
incheckning
b35d7a8c6f

BIN
assets/model/shabao.fbx


+ 23 - 4
assets/model/shabao.fbx.meta

@@ -295,6 +295,24 @@
       ],
       "subMetas": {}
     },
+    "e10e4": {
+      "importer": "gltf-mesh",
+      "uuid": "0eb565d6-76ca-4395-9d4c-34fb10a057a3@e10e4",
+      "displayName": "",
+      "id": "e10e4",
+      "name": "立方体.mesh",
+      "userData": {
+        "gltfIndex": 16,
+        "triangleCount": 60
+      },
+      "ver": "1.1.1",
+      "imported": true,
+      "files": [
+        ".bin",
+        ".json"
+      ],
+      "subMetas": {}
+    },
     "cbc2b": {
       "importer": "gltf-animation",
       "uuid": "0eb565d6-76ca-4395-9d4c-34fb10a057a3@cbc2b",
@@ -307,7 +325,7 @@
         "sample": 30,
         "span": {
           "from": 0,
-          "to": 0.7916666865348816
+          "to": 0.8333333134651184
         },
         "events": []
       },
@@ -387,13 +405,13 @@
     "animationImportSettings": [
       {
         "name": "Scene",
-        "duration": 0.7916666865348816,
+        "duration": 0.8333333134651184,
         "fps": 30,
         "splits": [
           {
             "name": "take",
             "from": 0,
-            "to": 0.7916666865348816,
+            "to": 0.8333333134651184,
             "wrapMode": 2,
             "previousId": "cbc2b"
           }
@@ -435,7 +453,8 @@
         "0eb565d6-76ca-4395-9d4c-34fb10a057a3@0c074",
         "0eb565d6-76ca-4395-9d4c-34fb10a057a3@26657",
         "0eb565d6-76ca-4395-9d4c-34fb10a057a3@69dc9",
-        "0eb565d6-76ca-4395-9d4c-34fb10a057a3@c85de"
+        "0eb565d6-76ca-4395-9d4c-34fb10a057a3@c85de",
+        "0eb565d6-76ca-4395-9d4c-34fb10a057a3@e10e4"
       ],
       "skeletons": [],
       "textures": [

BIN
assets/prefabs/.DS_Store


+ 12 - 12
assets/prefabs/enemy/sundries/scrap_car.prefab

@@ -29,29 +29,29 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 3.205,
-      "y": 0.183,
-      "z": -3.999
+      "x": 0,
+      "y": 0,
+      "z": 0
     },
     "_lrot": {
       "__type__": "cc.Quat",
-      "x": -0.7071068407911908,
-      "y": 0,
-      "z": 0,
-      "w": 0.7071067215818992
+      "x": 0.4999999999999999,
+      "y": -0.5000000000000001,
+      "z": -0.5,
+      "w": -0.5
     },
     "_lscale": {
       "__type__": "cc.Vec3",
-      "x": 100,
-      "y": 100,
-      "z": 100
+      "x": 300,
+      "y": 300,
+      "z": 300
     },
     "_mobility": 0,
     "_layer": 8388608,
     "_euler": {
       "__type__": "cc.Vec3",
-      "x": -90.00000965934633,
-      "y": 0,
+      "x": -90,
+      "y": -270,
       "z": 0
     },
     "_id": ""

BIN
assets/prefabs/map/.DS_Store


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 299 - 135
assets/prefabs/map/map1.prefab


+ 13 - 13
assets/prefabs/map/map1.prefab.meta

@@ -1,13 +1,13 @@
-{
-  "ver": "1.1.50",
-  "importer": "prefab",
-  "imported": true,
-  "uuid": "018a74cb-0fed-4096-af33-fef3cc3e4be0",
-  "files": [
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {
-    "syncNodeName": "map1"
-  }
-}
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "b824d4a8-95d2-4112-8d63-f7df26c184ee",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "map1"
+  }
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 206 - 263
assets/prefabs/map/map10.prefab


+ 1 - 1
assets/prefabs/map/map10.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "8389d996-4000-4587-bde4-b36c2822f942",
+  "uuid": "3f3694fe-a89c-4f5e-9618-89fea881f25a",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 205 - 389
assets/prefabs/map/map2.prefab


+ 13 - 13
assets/prefabs/map/map2.prefab.meta

@@ -1,13 +1,13 @@
-{
-  "ver": "1.1.50",
-  "importer": "prefab",
-  "imported": true,
-  "uuid": "217cdff2-33d9-4bac-9d6a-a94c5c2d585a",
-  "files": [
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {
-    "syncNodeName": "map2"
-  }
-}
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "2a6d10bc-9c1e-4420-ae90-e9ba997eea5f",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "map2"
+  }
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 204 - 385
assets/prefabs/map/map3.prefab


+ 1 - 1
assets/prefabs/map/map3.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "32ef6043-e4eb-44c3-b045-a3c42065e68c",
+  "uuid": "4a024490-339a-46f9-880e-c57a1bfe4d6e",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 283 - 225
assets/prefabs/map/map4.prefab


+ 1 - 1
assets/prefabs/map/map4.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "30813cc7-6bf5-4873-b7ac-edbc1e4af97c",
+  "uuid": "d9d65047-bb99-4e66-80ce-dd8f8e86c067",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 204 - 261
assets/prefabs/map/map5.prefab


+ 1 - 1
assets/prefabs/map/map5.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "cce5a751-bd3d-46d1-94d7-7534fa6e3f39",
+  "uuid": "196971a7-f6fb-4bf3-8588-e5336b5a4b5b",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 375 - 118
assets/prefabs/map/map6.prefab


+ 1 - 1
assets/prefabs/map/map6.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "70b2fe6b-4fd9-4a70-bbc7-f1b6cb07fffb",
+  "uuid": "c04220a0-a3ba-466b-8e3d-e07ebc17fd5a",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 205 - 389
assets/prefabs/map/map7.prefab


+ 1 - 1
assets/prefabs/map/map7.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "ef283589-a62d-4b2a-8557-75cc60536d65",
+  "uuid": "39ac67b5-f336-4319-8cc6-3db72ce1a814",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 204 - 385
assets/prefabs/map/map8.prefab


+ 1 - 1
assets/prefabs/map/map8.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "91e57855-127b-48d1-8dce-51ffdac13bfd",
+  "uuid": "f1ca6a99-dc16-4c33-93be-0b9bc434dc7c",
   "files": [
     ".json"
   ],

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 283 - 225
assets/prefabs/map/map9.prefab


+ 1 - 1
assets/prefabs/map/map9.prefab.meta

@@ -2,7 +2,7 @@
   "ver": "1.1.50",
   "importer": "prefab",
   "imported": true,
-  "uuid": "822ef3d0-0882-46ee-b7d8-6f7b77ac9479",
+  "uuid": "6d7a72bc-53f5-48f2-aec5-bd7ec3328925",
   "files": [
     ".json"
   ],

BIN
assets/prefabs/particle/.DS_Store


+ 3 - 1
assets/scripts/game/Player.ts

@@ -12,6 +12,7 @@ import { Game } from './Game';
 import MsgHints from '../utils/MsgHints';
 import { PlayerCamera } from './PlayerCamera';
 import { audioMgr } from '../core/manager/AudioManager';
+import { Utils } from '../utils/Utils';
 const { ccclass, property } = _decorator;
 
 //玩家动作类型
@@ -81,6 +82,7 @@ export class Player extends BaseExp {
      * @param isCut 是否是切换枪
      */
     public loadGunName(name: string = this.pData.prb_name,isCut: boolean = false){
+        if(Utils.isNull(name))return;
         //玩家待机状态
         this.player_skeletal.play(PAnimType.idle);
         this.pData = userIns.getCurUseGun();
@@ -121,7 +123,7 @@ export class Player extends BaseExp {
         this.shootUI.reloadMagazineing(time,()=>{
             this.isReloadMagazine = false;
             this.shootUI.gunDataUI();
-            this.player_skeletal.play(PAnimType.idle);
+            this.player_skeletal?.play(PAnimType.idle);
         });
     }
 

+ 46 - 32
assets/scripts/game/Sundries.ts

@@ -1,4 +1,4 @@
-import { _decorator, Collider, Enum, Node, RigidBody, SkeletalAnimation, Vec3 } from 'cc';
+import { _decorator, Collider, Enum, Node, RigidBody, Animation, Vec3 } from 'cc';
 import { BaseExp } from '../core/base/BaseExp';
 import { PoolManager } from '../core/manager/PoolManager';
 import { userIns } from '../data/UserData';
@@ -10,8 +10,11 @@ import { Enemy, EPartType } from './Enemy';
 import { audioMgr } from '../core/manager/AudioManager';
 import { Constants } from '../data/Constants';
 import MsgHints from '../utils/MsgHints';
-
 const { ccclass, property } = _decorator;
+
+//沙袋堆动画
+const sandbge_take = "take"
+
 /**
  * 战场障碍物类型
  */
@@ -31,10 +34,8 @@ export enum ObstacleType {
  */
 @ccclass('Sundries')
 export class Sundries extends BaseExp {
-    @property({ type: Enum(ObstacleType), tooltip: "SANDBAG_PILE: 沙袋堆 OIL_BARREL: 油桶 MILITARY_TRUCK: 军车 SMALL_SANDBAG: 小沙袋 ", displayName: "障碍物类型"})
+    @property({ type: Enum(ObstacleType), tooltip: "沙袋堆:SANDBAG_PILE 油桶:OIL_BARREL 军车: MILITARY_TRUCK  小沙袋:SMALL_SANDBAG", displayName: "障碍物类型"})
     public obstacleType: ObstacleType = ObstacleType.SANDBAG_PILE;
-    @autoBind({type: SkeletalAnimation,tooltip: "杂物动画节点"})
-    public skeletal: SkeletalAnimation  = null!;
 
     //杂物信息数据
     public data: any = null;
@@ -42,14 +43,10 @@ export class Sundries extends BaseExp {
     private isDead: boolean = false;
     //杂物当前的总血量
     private totalHp: number = 0;
-    //杂物身上的Collider
-    public collider: Collider  = null!;
     
     start() {
-        this.collider = this.node.getComponent(Collider);
-        if(this.collider){
-           this.collider["args"] = [EPartType.sundries,this];
-        }
+        //给碰撞体绑定数据
+        this.setupColliders(this.node);
         //根据障碍物类型设置总血量
         let sundrie_id: number = -1;
         switch (this.obstacleType) {
@@ -103,30 +100,31 @@ export class Sundries extends BaseExp {
     public scrap(){
         switch (this.obstacleType) {
             case ObstacleType.SANDBAG_PILE:{//沙袋堆
-                    if(this.skeletal)return;
+                    let skeletal:Animation = this.node.getComponent(Animation);
+                    if(!skeletal)return;
                     //沙袋掀开的动画
-                    this.skeletal.play('take');
-                    this.scheduleOnce(this.recycle.bind(this), 1.5);
+                    skeletal.play(sandbge_take);
+                    skeletal.scheduleOnce(()=>{
+                        skeletal.pause();
+                    },0.9);
                 }
                 break;
             case ObstacleType.OIL_BARREL:{//油桶
-                    //油漆桶爆炸动画
+                    //油漆桶音效
                     audioMgr.playOneShot(Constants.audios.Oildrum_explosion);
                     //爆炸后生成爆炸特效 粒子路径、自动回收时间、外部设置回调
                     ResUtil.playParticle(
                         `effects/Prefabs/OilBoom`, 
                         4, 
                         (particle) => { 
-                            particle.position = new Vec3(0.1,0.1, 0.1);
-                            particle.children.forEach((c) => {
-                                c.position = new Vec3(0.1, 0.1, 0.1);
-                            });
+                            particle.position = new Vec3(0.2,0.2,0.2);
                             particle.parent = Game.I.map.node; 
-                            particle.worldPosition = this.node.worldPosition.clone();
+                            const targetPos: Vec3 = this.node.worldPosition.clone();
+                            particle.worldPosition = targetPos;
                             particle.active = true;
                             this.recycle();
                             //爆炸后生成爆炸伤害
-                            this.explosionDamage();
+                            this.explosionDamage(targetPos);
                         }
                     );
                 }
@@ -137,21 +135,23 @@ export class Sundries extends BaseExp {
                         .then((military: Node | null) => {
                             if(!military)return;
                             military.active = true;
-                            military.parent = Game.I.map.node;
-                            military.worldPosition = this.node.worldPosition.clone();
+                            military.parent = this.node.parent;
+                            const targetPos: Vec3 = this.node.worldPosition.clone();
+                            military.worldPosition = targetPos;
+                            military.eulerAngles = this.node.eulerAngles.clone();
+                            military.scale = this.node.scale.clone();
                             //回收原有的军车
                             this.recycle();
                             //播放爆炸过后的浓烟
                             ResUtil.playParticle(
                                 `effects/Prefabs/HeavySmoke`, 
-                                4, 
+                                3, 
                                 (particle) => { 
                                     particle.parent = Game.I.map.node; 
-                                    particle.worldPosition = this.node.worldPosition.clone();
+                                    particle.worldPosition = targetPos;
                                     particle.active = true;
-                                    particle.scale = new Vec3(0.5, 0.5, 0.5);
                                     //爆炸后生成爆炸伤害
-                                    this.explosionDamage();
+                                    this.explosionDamage(targetPos);
                                 }
                             );
                         });
@@ -186,25 +186,39 @@ export class Sundries extends BaseExp {
 
     /**
      * 爆炸物产生爆炸伤害
-     * @returns 
+     * @param targetPos 爆炸物的位置
      */
-    public explosionDamage(){
+    public explosionDamage(targetPos: Vec3){
         //爆炸半径
-        const eRadius: number = this.data.explosion_radius;
+        const eRadius: number = this.data.explosion_radius / 10;
         const allEnemys = Game.I.buildEnemys.allEnemys.filter(e=>!e.isDead);
         if(allEnemys.length <= 0)return;
         //爆炸伤害
         const damage: number = this.data.explosion_injury;
         allEnemys.forEach((e: Enemy) => {
             const ePos: Vec3 = e.node.worldPosition;
-            const sPos: Vec3 = this.node.worldPosition;
-            const distance = ePos.clone().subtract(sPos).length();
+            const distance = ePos.clone().subtract(targetPos).length();
             if(distance <= eRadius) {
                 e.subHP(damage, this.data);
             }
         })
     }
 
+    /**
+     * 递归设置所有子节点的Collider参数
+     * @param node 起始节点
+     */
+    private setupColliders(node: Node) {
+        const collider = node.getComponent(Collider);
+        if(collider){
+           collider["args"] = [EPartType.sundries, this];
+        }
+        //递归处理所有子节点
+        node.children.forEach(child => {
+            this.setupColliders(child);
+        });
+    }
+
     /**
      * 杂物回收
      */

+ 1 - 1
profiles/v2/packages/reference-image.json

@@ -3,6 +3,6 @@
   "config": {
     "images": [],
     "sceneUUID": {},
-    "scene": "c418bfb3-8f04-402d-95bc-ba0ae00f18d6"
+    "scene": "b824d4a8-95d2-4112-8d63-f7df26c184ee"
   }
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 374 - 324
profiles/v2/packages/scene.json


Vissa filer visades inte eftersom för många filer har ändrats