wiki更新
This commit is contained in:
@@ -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)
|
||||
|
||||
## 结论
|
||||
|
||||
Reference in New Issue
Block a user