Browse Source

bug优化

181404010226 4 months ago
parent
commit
d2580cfe8a

+ 4 - 6
assets/Scenes/GameLevel.scene

@@ -10269,16 +10269,14 @@
     "placedBlocksContainer": {
       "__id__": 266
     },
-    "baseSpeed": 50,
-    "maxReflectionRandomness": 0.9,
+    "ballControllerConfig": {
+      "__uuid__": "6251555c-8fac-4a81-a760-6ec36a78de4a",
+      "__expectedType__": "cc.JsonAsset"
+    },
     "bulletPrefab": {
       "__uuid__": "54638943-4461-43b1-b351-a0380e1f30ce",
       "__expectedType__": "cc.Prefab"
     },
-    "antiTrapTimeWindow": 2,
-    "antiTrapHitThreshold": 5,
-    "deflectionAttemptThreshold": 3,
-    "antiTrapDeflectionMultiplier": 3,
     "bulletContainerPrefab": {
       "__uuid__": "b67bcc20-b46f-4cd9-9020-820246f608d6",
       "__expectedType__": "cc.Prefab"

+ 0 - 12
assets/resources/data/excel/一键部署工具.bat.meta

@@ -1,12 +0,0 @@
-{
-  "ver": "1.0.0",
-  "importer": "*",
-  "imported": true,
-  "uuid": "8bf4dd47-3f46-4c2b-8221-4527ecb43270",
-  "files": [
-    ".bat",
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {}
-}

+ 0 - 12
assets/resources/data/excel/安装依赖库.bat.meta

@@ -1,12 +0,0 @@
-{
-  "ver": "1.0.0",
-  "importer": "*",
-  "imported": true,
-  "uuid": "6d27532f-2157-4f33-bdfe-762849a1d03c",
-  "files": [
-    ".bat",
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {}
-}

+ 35 - 9
assets/scripts/CombatSystem/BallController.ts

@@ -1,10 +1,10 @@
-import { _decorator, Component, Node, Vec2, Vec3, UITransform, Collider2D, Contact2DType, IPhysics2DContact, RigidBody2D, Prefab, instantiate, find, CircleCollider2D } from 'cc';
+import { _decorator, Component, Node, Vec2, Vec3, UITransform, Collider2D, Contact2DType, IPhysics2DContact, RigidBody2D, Prefab, instantiate, find, CircleCollider2D, JsonAsset } from 'cc';
 import { PhysicsManager } from '../Core/PhysicsManager';
 import { WeaponBullet, BulletInitData, WeaponConfig } from './WeaponBullet';
 import EventBus, { GameEvents } from '../Core/EventBus';
 import { PersistentSkillManager } from '../FourUI/SkillSystem/PersistentSkillManager';
 import { BallAni } from '../Animations/BallAni';
-import { ConfigManager, BallControllerConfig } from '../Core/ConfigManager';
+import { BallControllerConfig } from '../Core/ConfigManager';
 const { ccclass, property } = _decorator;
 
 @ccclass('BallController')
@@ -23,6 +23,13 @@ export class BallController extends Component {
     })
     public placedBlocksContainer: Node = null;
 
+    // 球控制器配置文件
+    @property({
+        type: JsonAsset,
+        tooltip: '拖拽ballController.json配置文件到这里'
+    })
+    public ballControllerConfig: JsonAsset = null;
+
     // 球的移动速度(从配置文件加载)
     public baseSpeed: number = 60; 
     public currentSpeed: number = 60;
@@ -119,15 +126,34 @@ export class BallController extends Component {
 
     // 加载配置
     private loadConfig() {
-        const configManager = ConfigManager.getInstance();
-        if (configManager.isConfigLoaded()) {
-            this.config = configManager.getBallControllerConfig();
+        if (this.ballControllerConfig && this.ballControllerConfig.json) {
+            this.config = this.ballControllerConfig.json as BallControllerConfig;
             this.applyConfig();
+            console.log('[BallController] ✅ 配置文件通过装饰器加载成功:', this.config);
         } else {
-            // 如果配置还没加载完成,等待一段时间后重试
-            this.scheduleOnce(() => {
-                this.loadConfig();
-            }, 0.1);
+            console.warn('[BallController] ⚠️ 配置文件未设置,使用默认值');
+            // 使用默认配置
+            this.config = {
+                baseSpeed: 60,
+                maxReflectionRandomness: 0.2,
+                antiTrapTimeWindow: 5.0,
+                antiTrapHitThreshold: 5,
+                deflectionAttemptThreshold: 3,
+                antiTrapDeflectionMultiplier: 3.0,
+                FIRE_COOLDOWN: 0.05,
+                ballRadius: 10,
+                gravityScale: 0,
+                linearDamping: 0,
+                angularDamping: 0,
+                colliderGroup: 1,
+                colliderTag: 1,
+                friction: 0,
+                restitution: 1,
+                safeDistance: 50,
+                edgeOffset: 20,
+                sensor: false
+            };
+            this.applyConfig();
         }
     }
 

+ 20 - 4
assets/scripts/CombatSystem/BlockManager.ts

@@ -171,16 +171,22 @@ export class BlockManager extends Component {
     }
     
     start() {
+        console.log('[BlockManager] 开始初始化BlockManager');
+        
         // 获取配置管理器
         this.configManager = ConfigManager.getInstance();
         if (!this.configManager) {
-            console.error('无法获取ConfigManager实例');
+            console.error('[BlockManager] 无法获取ConfigManager实例');
+        } else {
+            console.log('[BlockManager] ConfigManager实例获取成功,配置加载状态:', this.configManager.isConfigLoaded());
         }
         
         // 获取关卡配置管理器
         this.levelConfigManager = LevelConfigManager.getInstance();
         if (!this.levelConfigManager) {
-            console.error('无法获取LevelConfigManager实例');
+            console.error('[BlockManager] 无法获取LevelConfigManager实例');
+        } else {
+            console.log('[BlockManager] LevelConfigManager实例获取成功');
         }
 
         // 如果没有指定GridContainer,尝试找到它
@@ -324,14 +330,24 @@ export class BlockManager extends Component {
         this.clearBlocks();
         
         // 检查配置管理器是否可用
-        if (!this.configManager || !this.configManager.isConfigLoaded()) {
-            console.warn('配置管理器未初始化或配置未加载完成,延迟生成方块');
+        if (!this.configManager) {
+            console.error('[BlockManager] ConfigManager实例未找到,延迟1秒后重试');
             this.scheduleOnce(() => {
                 this.generateRandomBlocksInKuang();
             }, 1.0);
             return;
         }
         
+        if (!this.configManager.isConfigLoaded()) {
+            console.log('[BlockManager] 配置未加载完成,延迟1秒后重试生成方块');
+            this.scheduleOnce(() => {
+                this.generateRandomBlocksInKuang();
+            }, 1.0);
+            return;
+        }
+        
+        console.log('[BlockManager] 配置已加载完成,开始生成方块');
+        
         if (this.blockPrefabs.length === 0) {
             console.error('没有可用的预制体');
             return;

+ 37 - 20
assets/scripts/Core/ConfigManager.ts

@@ -175,7 +175,6 @@ export class ConfigManager extends BaseSingleton {
     
     private weaponsConfig: any = null;
     private enemiesConfig: any = null;
-    private ballControllerConfig: BallControllerConfig = null;
     private configLoaded: boolean = false;
     
     // 武器权重缓存
@@ -187,27 +186,60 @@ export class ConfigManager extends BaseSingleton {
      * BaseSingleton 首次实例化回调
      */
     protected init() {
+        console.log('[ConfigManager] 开始初始化配置管理器');
         this.loadConfigs();
     }
 
     // 加载所有配置文件
     private async loadConfigs() {
+        console.log('[ConfigManager] 开始加载配置文件');
         this.configLoaded = false;
         
         try {
+            // 确保resources bundle已经准备好
+            await this.ensureResourcesBundle();
+            
             // 加载武器配置
+            console.log('[ConfigManager] 开始加载武器配置');
             await this.loadWeaponsConfig();
+            console.log('[ConfigManager] 武器配置加载完成');
+            
             // 加载敌人配置
+            console.log('[ConfigManager] 开始加载敌人配置');
             await this.loadEnemiesConfig();
-            // 加载球控制器配置
-            await this.loadBallControllerConfig();
+            console.log('[ConfigManager] 敌人配置加载完成');
+            
+            // 注意:球控制器配置现在通过BallController组件的装饰器直接加载
+            console.log('[ConfigManager] 球控制器配置通过装饰器加载,跳过ConfigManager加载');
             
             this.configLoaded = true;
+            console.log('[ConfigManager] ✅ 所有配置文件加载成功,配置管理器初始化完成');
         } catch (error) {
+            console.error('[ConfigManager] ❌ 配置文件加载失败:', error);
             this.configLoaded = false;
+            
+            // 延迟重试加载
+            console.log('[ConfigManager] 将在3秒后重试加载配置');
+            setTimeout(() => {
+                console.log('[ConfigManager] 开始重试加载配置');
+                this.loadConfigs();
+            }, 3000);
         }
     }
 
+    // 确保resources bundle已经准备好
+    private ensureResourcesBundle(): Promise<void> {
+        return new Promise((resolve) => {
+            console.log('[ConfigManager] 检查resources bundle状态...');
+            
+            // 简单延迟确保Cocos Creator资源系统已经初始化
+            setTimeout(() => {
+                console.log('[ConfigManager] resources bundle初始化等待完成');
+                resolve();
+            }, 1000);
+        });
+    }
+
     // 加载武器配置
     private loadWeaponsConfig(): Promise<void> {
         return new Promise((resolve, reject) => {
@@ -259,20 +291,7 @@ export class ConfigManager extends BaseSingleton {
     }
 
     // 加载球控制器配置
-    private loadBallControllerConfig(): Promise<void> {
-        return new Promise((resolve, reject) => {
-            resources.load('data/ballController', JsonAsset, (err, jsonAsset) => {
-                if (err) {
-                    console.error('加载球控制器配置失败:', err);
-                    reject(err);
-                } else {
-                    this.ballControllerConfig = jsonAsset.json as BallControllerConfig;
-                    console.log('球控制器配置加载成功:', this.ballControllerConfig);
-                    resolve();
-                }
-            });
-        });
-    }
+    // 球控制器配置现在通过BallController组件的装饰器直接加载,不再需要在ConfigManager中处理
 
     // 构建武器权重列表
     private buildWeaponWeightedList() {
@@ -484,7 +503,5 @@ export class ConfigManager extends BaseSingleton {
     }
 
     // 获取球控制器配置
-    public getBallControllerConfig(): BallControllerConfig | null {
-        return this.ballControllerConfig;
-    }
+    // getBallControllerConfig方法已移除,球控制器配置现在通过装饰器直接在BallController中加载
 }