回合战斗设计总结
1.战斗模块划分
__init__ 对外接口
cmd 放指令组装的类
defines 常量
package 装数据包的类
warcontext 将战斗的单例集中起来,作为统一接口
view
v_war 战场视图
v_warunit 战斗单元视图
warui 界面视图
parts 视图分离
war
p_warunits 战斗单元增删
warui 战场ui的细节,如头部人物图标,操作显示,倒计时
warunit 战场单元相关,位置,血条,选中效果
com 视图分离,放一些不参与单元测试的单元部分,如法术播放,摄像机,特效播放
warui
warunit
ctrl
war
warui
warunit
model
m_buff buff属性
m_summon 宠物数据
m_war 战场数据
m_warunit 战斗单元数据
service 面向接口编程,主要是为了将依赖表现,导表等的部分改为调用service,有利于单元测试
facade 对外接口服务
factory 工厂服务
server 发包服务
table 导表服务
view 视图服务
2.结构图
ViewModel:视图数据,作为View和Ctrl的分离层。里面实质是包含数据及信号,用于脱离view的单元测试。在接入view后,只需注册信号就可以有相应的视图变化。与Ctrl关联的改为ViewModel,测试逻辑再也不需要模拟View层,View层也只会在启动游戏后,由ViewModel数据驱动去改变显示。
3.处理过程
接收到服务端发过来的数据包 -> 将数据组装为客户端数据包 -> 对数据包进行解析,组装出回合指令 -> 回合指令表现。