卡牌战斗实现框架

卡牌战斗_表现层实现框架


   最近工作碰到了个战斗模块, 于是来总结一下.这是一个卡牌游戏,所以战斗是事先计算好的, 之后再进行播放, 这里我先晒晒前台播放的框架, 有人关注的话, 我再介绍下战斗过程的生成
PS: 这是我第一次写卡牌战斗, 各种不足欢迎拍砖, 不过对于战斗模块的新手还是有些可参考的
PS: 这部分策划也可以参考一下

一. 播放器
1 需求
播放战斗内容action(并行,串行均可),  暂停, 变速, 跳过, 重播, 剧情, 聚焦效果, 震动效果

2 设计
1⃣️ 播放器类: 封装播放流程,并提供播放器代理协议, 提供接口给使用者 (如播放技能前后, 播放前后, 暂停等)
2⃣️ pve,pvp,世界boss播放器等子类 (实现播放器协议)
3⃣️ 战斗界面类: 处理UI
4⃣️ 剧情类: 提供剧情内容, npc对话

3 好处
1⃣️ 利用模板模式,组合模式 , 可以应对不同类型战斗, 播放需求不同的情况
2⃣️ 代码分散,内聚高

4 代码
1⃣️ 播放器类:


代理:



2⃣️ pve播放器类,世界boss播放器类,pvp播放器类



3⃣️ 战斗界面类


4⃣️ 剧情类


二. 战斗行为单元
1 需求
1⃣️ 事先生成,并组合
2⃣️ 美术和策划可自由配置并测试

2 设计
1⃣️ 行为单元统一化: 普通攻击和死亡都视作释放技能,统一为一类行为 ps: 有些死亡是触发技能的,所以这样处理
2⃣️ 嵌套层次: 不允许嵌套, 简化设计


3 代码
action节点


三. 战斗人物单元
1 需求
1⃣️ 人物头像大小不固定, boss的会大 (多余需求 参考全民里的boss战的做法),
2⃣️ 血量 怒气的动画, 各种buff效果,
3⃣️ 各种技能造成的不同受击效果, 效果间的层次关系
4⃣️ 格挡,闪避

2 设计
1⃣️ 一个battleUnit类
2⃣️ 受击时(加血等技能也算), 才会触发buff, 格挡, 血量, 怒气一类
3 好处

4 待优化

5 代码

四. 技能动画单元

1 需求
1⃣️ 不同类型的技能出手方式: 原地不动播放出手动画; 冲到不同位置播放动画
受击方式: 群体;单体;单列;单行;任意点位
弹道方式: 一个弹道多个受击; 多个弹道多个受击; 一个弹道一个受击
动画的时间顺序: 出手动画->弹道动画->技能动画->受击效果动画(单体或群体)->.......(掉血等)
注意: 动画顺序不能变,但可以交叉(糟糕的需求)

2⃣️ 动画旋转
技能动画: 180度旋转; 不旋转

3⃣️ 需求限制动画不能部分旋转,部分不旋转

2 设计
1⃣️ 技能定义类: 不同技能根据类型来选择技能模板,并配置买二手手游账号

2⃣️ 技能模板: 模板由不同动画节点组成(出手, 受击, 弹道等)


3⃣️ 技能动画节点: 出手动画节点: PreSkillPlaceholder,
出手动画节点: RushActionPlaceholder --- [attackDirection]攻击方向,  [destRegion]目的地
弹道动画节点: ThrowActionPlaceholder ---  [destRegion]目的地, [normalizedLength] 弹道长度
技能动画节点: AttackActionPlaceholder --- [skillInfo] 技能 [influencedRange] 受击区域
受击效果动画节点: 无
并行动画组合: TraverseAffectedRangePlaceHolder -- [delayFunc] 不同动画的开始时间点 (用于多个弹道动画并行,这块的需求其实很不好)

每个节点必包含信息 :<type>类型,  <actor>释放者, <postFix>文件后缀名,每个节点会根据当前战斗节点的信息,来判断动画位置和作用区域

3 好处
1⃣️  使用者在拓展技能时,只需要关注技能定义类即可


2⃣️  技能细分粒度较细, 便于应对较复杂的组合

4 待优化
1⃣️ 技术实现: 复杂度很高,却仅仅应对如此简单的战斗 (ps 全民英雄的战斗那么富有深度, 包含了速度,集火,各种buff, 跟其对技能动画的合理简化是离不开的)

2⃣️ 多余需求: 群攻击动画时, 所有弹道动画,受击动画应该同时播放,降低美术和技术的复杂度




3⃣️ 考虑不周: 策划和美术在制作技能动画时, 应该多考虑翻转,阵型位置,人不足等表现情形


4⃣️ 多余需求: 英雄抬手动画和冲击动画可以作为一个, 且保证冲击动画只冲击中间部分,这样无需根据阵型去调整


6⃣️ 考虑不周: 美术方面. 多体攻击时, 技能动画应该忽略占位,占位是随时都会变的, 比如人死了, 其位置不会播具体的动画, 不要在每个占位处出现什么技能特效之类的具体动画


7⃣️ 考虑不周: 技能没有专门的特效音

5 代码
1⃣️ 技能定义类



2⃣️ 技能模板:



3⃣️ 技能动画节点

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值