卡牌战斗_表现层实现框架 最近工作碰到了个战斗模块, 于是来总结一下.这是一个卡牌游戏,所以战斗是事先计算好的, 之后再进行播放, 这里我先晒晒前台播放的框架, 有人关注的话, 我再介绍下战斗过程的生成 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⃣️ 技能动画节点 |
版权声明:本文为okissgoodbye原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
单排技能)
