wiki更新

This commit is contained in:
panw
2025-10-30 16:49:19 +08:00
parent 40e0086be3
commit 93ceaa70e4
18 changed files with 746 additions and 1100 deletions

View File

@@ -15,14 +15,16 @@
- [MapLayer.ts](file://assets/script/game/map/view/map/layer/MapLayer.ts)
- [EntityLayer.ts](file://assets/script/game/map/view/map/layer/EntityLayer.ts)
- [SkillLayer.ts](file://assets/script/game/map/view/map/layer/SkillLayer.ts)
- [HeroAttrsComp.ts](file://assets/script/game/hero/HeroAttrsComp.ts) - *在最近提交中更新*
- [MonMove.ts](file://assets/script/game/hero/MonMove.ts) - *在最近提交中更新*
- [HeroViewComp.ts](file://assets/script/game/hero/HeroViewComp.ts) - *在最近提交中更新*
</cite>
## 更新摘要
**已更新内容**
- 更新了“随机关卡生成逻辑分析”章节,反映使用 `MonType` 枚举重构的怪物生成系统
- 更新了“怪物实体设计模式分析”章节,以包含新的 `monType``buffs` 参数
- 更新了“依赖分析”图表,反映 `RogueConfig.ts``MissionMonComp.ts`变更
- 新增了“怪物类型与属性计算”章节,详细说明 `MonType` 枚举和 `getMonAttr` 函数
- 更新了“怪物实体设计模式分析”章节,反映使用 `HeroAttrsComp``MonMoveComp` 的重构
- 更新了“依赖分析”图表,反映 `Mon.ts``MissionMonComp.ts` 的变更
- 新增了“怪物属性与移动系统重构”章节,详细说明 `HeroAttrsComp``MonMoveComp`使用
- 所有受影响的代码示例和序列图均已更新
## 目录
@@ -73,7 +75,9 @@ end
end
subgraph "hero"
Mon_ts["Mon.ts"]
MonModelComp_ts["MonModelComp.ts"]
MonMove_ts["MonMove.ts"]
HeroAttrsComp_ts["HeroAttrsComp.ts"]
HeroViewComp_ts["HeroViewComp.ts"]
end
subgraph "common"
subgraph "config"
@@ -225,6 +229,52 @@ GameMap --> MapModelComp : "包含"
- [GameMap.ts](file://assets/script/game/map/GameMap.ts#L1-L35)
- [MapModelComp.ts](file://assets/script/game/map/model/MapModelComp.ts#L1-L42)
### 怪物属性与移动系统重构
根据最近的代码重构,怪物系统已进行重大更新。`Mon.ts`不再使用专用的`MonAttrsComp``MonViewComp`,而是统一使用英雄系统的`HeroAttrsComp``HeroViewComp`,实现了代码复用和逻辑一致性。同时,为怪物创建了专属的`MonMoveComp`移动组件,与英雄系统分离。
#### 重构后组件关系
```mermaid
classDiagram
class Monster {
+HeroModel : HeroAttrsComp
+HeroView : HeroViewComp
+HeroSkills : HeroSkillsComp
+MonMove : MonMoveComp
}
class HeroAttrsComp {
+hero_uuid : number
+lv : number
+hp : number
+mp : number
+Attrs : Array
}
class HeroViewComp {
+scale : number
+box_group : number
}
class MonMoveComp {
+direction : number
+targetX : number
+moving : boolean
}
Monster --> HeroAttrsComp : "使用"
Monster --> HeroViewComp : "使用"
Monster --> MonMoveComp : "使用"
```
**图示来源**
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L131)
- [HeroAttrsComp.ts](file://assets/script/game/hero/HeroAttrsComp.ts#L7-L380)
- [HeroViewComp.ts](file://assets/script/game/hero/HeroViewComp.ts#L24-L404)
- [MonMove.ts](file://assets/script/game/hero/MonMove.ts#L8-L22)
**本节来源**
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L131)
- [HeroAttrsComp.ts](file://assets/script/game/hero/HeroAttrsComp.ts#L7-L380)
- [HeroViewComp.ts](file://assets/script/game/hero/HeroViewComp.ts#L24-L404)
- [MonMove.ts](file://assets/script/game/hero/MonMove.ts#L8-L22)
### 怪物类型与属性计算
`RogueConfig.ts`文件引入了`MonType`枚举来定义怪物类型,取代了原有的布尔标记。`MonType`包含`NORMAL`(普通)、`ELITE`(精英)和`BOSS`(首领)三种类型。系统通过`MonAttrSet`配置表为不同类型的怪物设置属性倍率。`getMonAttr`函数根据怪物等级、UUID和类型计算最终属性值确保精英和Boss怪物具有更高的生命值、攻击力和防御力。
@@ -282,7 +332,7 @@ end
### 怪物实体设计模式分析
`Mon.ts`文件定义了`Monster`代表游戏中的怪物实体。该类基于ECS架构包含`HeroModel`(模型组件)、`HeroView`(视图组件)和`BattleMove`战斗移动组件)。`load`方法的签名已更新,增加了`monType``buffs`参数。该方法调用`getMonAttr`函数根据关卡等级和怪物类型计算属性,并将这些属性传递给`hero_init`方法进行初始化。怪物的技能、属性和状态均在此方法中初始化。
`Mon.ts`文件定义了`Monster`代表游戏中的怪物实体。该类基于ECS架构包含`HeroModel`(模型组件)、`HeroView`(视图组件)和`MonMove`专属移动组件)。`load`方法的签名已更新,增加了`monType``buffs`参数。该方法调用`getMonAttr`函数根据关卡等级和怪物类型计算属性,并将这些属性传递给`hero_init`方法进行初始化。怪物的技能、属性和状态均在此方法中初始化。
#### 复杂逻辑组件
```mermaid
@@ -297,7 +347,7 @@ GetHeroInfo --> CalculateAttrs["调用getMonAttr计算最终属性"]
CalculateAttrs --> ApplyBuffs["应用buffs数组"]
ApplyBuffs --> InitSkills["初始化技能数组"]
InitSkills --> AddComponent["将HeroViewComp添加到实体"]
AddComponent --> SetMove["设置BattleMove参数"]
AddComponent --> SetMove["设置MonMove参数"]
SetMove --> Dispatch["派发monster_load事件"]
Dispatch --> End([怪物加载完成])
```
@@ -388,7 +438,9 @@ MapViewScene_ts --> EntityLayer_ts
MapViewScene_ts --> SkillLayer_ts
MissionMonComp_ts --> RogueConfig_ts
MissionMonComp_ts --> Mon_ts
Mon_ts --> heroSet_ts
Mon_ts --> HeroAttrsComp_ts
Mon_ts --> HeroViewComp_ts
Mon_ts --> MonMove_ts
RogueConfig_ts --> heroSet_ts
```
@@ -402,7 +454,10 @@ RogueConfig_ts --> heroSet_ts
- [SkillLayer.ts](file://assets/script/game/map/view/map/layer/SkillLayer.ts#L1-L47)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L1-L239)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L1-L310)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L108)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L131)
- [HeroAttrsComp.ts](file://assets/script/game/hero/HeroAttrsComp.ts#L7-L380)
- [HeroViewComp.ts](file://assets/script/game/hero/HeroViewComp.ts#L24-L404)
- [MonMove.ts](file://assets/script/game/hero/MonMove.ts#L8-L22)
- [heroSet.ts](file://assets/script/game/common/config/heroSet.ts#L1-L151)
**本节来源**
@@ -415,7 +470,10 @@ RogueConfig_ts --> heroSet_ts
- [SkillLayer.ts](file://assets/script/game/map/view/map/layer/SkillLayer.ts#L1-L47)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L1-L239)
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts#L1-L310)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L108)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L131)
- [HeroAttrsComp.ts](file://assets/script/game/hero/HeroAttrsComp.ts#L7-L380)
- [HeroViewComp.ts](file://assets/script/game/hero/HeroViewComp.ts#L24-L404)
- [MonMove.ts](file://assets/script/game/hero/MonMove.ts#L8-L22)
- [heroSet.ts](file://assets/script/game/common/config/heroSet.ts#L1-L151)
## 性能考虑
@@ -430,7 +488,7 @@ RogueConfig_ts --> heroSet_ts
**本节来源**
- [GameMap.ts](file://assets/script/game/map/GameMap.ts#L1-L35)
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts#L1-L239)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L108)
- [Mon.ts](file://assets/script/game/hero/Mon.ts#L1-L131)
- [map_delivery.json](file://assets/resources/config/map/map_delivery.json#L1-L29)
## 结论