游戏开发论坛

 找回密码
 立即注册
搜索
查看: 19787|回复: 9

[连载] 卡牌战斗实现框架

[复制链接]

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
发表于 2014-7-29 11:22:11 | 显示全部楼层 |阅读模式
卡牌战斗_表现层实现框架

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

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

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

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

4 代码
1⃣️ 播放器类:
tmp522ed475.png
代理:
tmp7370b652.png

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



3⃣️ 战斗界面类


4⃣️ 剧情类


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

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


3 代码
action节点单排技能)
tmp57a2db7e.png
三. 战斗人物单元
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⃣️ 技能定义类
tmp6b2540a2.png

2⃣️ 技能模板:
tmp1ad94a24.png

3⃣️ 技能动画节点








tmp303c9768.png

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
 楼主| 发表于 2014-7-29 11:27:28 | 显示全部楼层
自己顶一下

0

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2014-7-29 13:36:57 | 显示全部楼层
 写的不错,赞一个

0

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2014-7-29 13:37:38 | 显示全部楼层
求后续内容

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
 楼主| 发表于 2014-7-30 18:05:03 | 显示全部楼层
春常9 发表于 2014-7-30 12:29
好帖要顶,楼主的头像还是不错滴

哈哈 头像是我们公司游戏上截图的

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
 楼主| 发表于 2014-7-30 18:05:20 | 显示全部楼层
春常9 发表于 2014-7-30 12:29
好帖要顶,楼主的头像还是不错滴

哈哈 头像是我们公司游戏上截图的

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2014-8-7 15:27:51 | 显示全部楼层
y415098820 发表于 2014-7-30 18:05
哈哈 头像是我们公司游戏上截图的

楼主 什么时候分享 战斗生成模块的 期待~~

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
 楼主| 发表于 2014-8-7 17:13:04 | 显示全部楼层
285889663 发表于 2014-8-7 15:27
楼主 什么时候分享 战斗生成模块的 期待~~

最近要自己做个小游戏 类似神经猫那种病毒营销的游戏..... 等下个月的把 嘿嘿...!>

0

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2014-8-21 20:18:22 | 显示全部楼层
关注中,求更新!

6

主题

18

帖子

123

积分

注册会员

Rank: 2

积分
123
QQ
 楼主| 发表于 2014-8-25 12:57:57 | 显示全部楼层
nomandia 发表于 2014-8-21 20:18
关注中,求更新!

嗯,,,,,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 02:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表