目前卡在 人物动画 + 中断 + 技能效果 的协作处理。
主要问题在于 技能的中断 和 对应技能使用相应的动作。
关于动画:
假设 角色使用了技能 A,这个技能的效果是 抛出一个小球,小球直线运动,会给敌方造成伤害。角色在抛出小球之前需要做一个投掷动作,扔完后有个收手动作,角色在抛出小球之前是可以被其它外界因素中断的。
为了复用性,应该把小球给剥离出来,单独做一个类。
所以,就需要一个帧事件,在第 X 帧构造一个飞行的小球。
假设 角色使用了技能 B,这个技能的效果是角色进行快速连续斩击,这个技能每一次斩击都会使一个范围中的敌人受一次伤害,这个技能在动作结束之前,是可以被打断的。
为了复用性,需要构造一个产生即时范围伤害的类。
所以,就需要多个帧事件,在第 x1, x2, x3 … xn 帧构造一个范围伤害。
缺点:1、只适应特定的模型动画。2、需要在帧事件回调函数里去处理所有技能的帧事件。
关于中断:
每个技能的中断方式都不同(比如移动、被击晕、被冻结等),因此技能是否被中断,需要不同的逻辑判断。
为了编码方便,最好是用订阅者模式,去监听角色的事件,来做相应的处理。
那么,问题来了……
请教有经验的朋友,该怎么去设计这样的一个类?